【Leetcode】33. 搜索旋转排序数组
生活随笔
收集整理的這篇文章主要介紹了
【Leetcode】33. 搜索旋转排序数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
假設按照升序排序的數組在預先未知的某個點上進行了旋轉。
( 例如,數組?[0,1,2,4,5,6,7]?可能變為?[4,5,6,7,0,1,2]?)。
搜索一個給定的目標值,如果數組中存在這個目標值,則返回它的索引,否則返回?-1?。
你可以假設數組中不存在重復的元素。
你的算法時間復雜度必須是?O(log?n) 級別。
示例 1:
輸入: nums = [4,5,6,7,0,1,2], target = 0
輸出: 4
示例?2:
輸入: nums = [4,5,6,7,0,1,2], target = 3
輸出: -1
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
解法:
class Solution { public:int search(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) return mid;if (nums[mid] < nums[right]) {if (nums[mid] < target && nums[right] >= target) left = mid + 1;else right = mid - 1;} else {if (nums[left] <= target && nums[mid] > target) right = mid - 1;else left = mid + 1;}}return -1;} };?
總結
以上是生活随笔為你收集整理的【Leetcode】33. 搜索旋转排序数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英雄联盟的寒冰女巫的Q能智能吗?就是鼠标
- 下一篇: 这个正则 var reg = /([^