<33>——Search in Rotated Sorted Array
2017-09-20 13:48
197 查看
33、Search in Rotated Sorted Array
搜索旋转排序数组
假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为45 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。
你可以假设数组中不存在重复的元素。
样例
给出[4, 5, 1, 2, 3]和target=1,返回 2
给出[4, 5, 1, 2, 3]和target=0,返回 -1
分析:
找出旋转点,然后二分查找。代码:
class Solution {
public:
int search(vector<int>& nums, int target) {
if(nums.size()<1)return -1;
int lo=0,hi=nums.size()-1;
if(nums[lo]>nums[hi])
{
for(int i=0;i<nums.size()-1;i++)
if(nums[i]>nums[i+1])
if(target>nums[hi])hi=i;
else if(target<nums[lo])lo=i+1;
}
while(lo<=hi)
{
int mid=lo+(hi-lo)/2;
if(nums[mid]==target)return mid;
else if(nums[mid]>target)hi=mid-1;
else lo=mid+1;
}
return -1;
}
};
相关文章推荐
- !leetcode[33&81]:Search in Rotated Sorted Array[I & II]
- leetcode 033 —— Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- 81. Search in Rotated Sorted Array II
- Leetcode#33 Search in Rotated Sorted Array
- Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 20_leetcode_Search in Rotated Sorted Array
- lintcode-medium-Search in Rotated Sorted Array
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- LeetCode #33 - Search in Rotated Sorted Array
- 81. Search in Rotated Sorted Array II
- LeetCode——Search in Rotated Sorted Array II
- leetcode笔记:Search in Rotated Sorted Array
- Leetcode -- Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array [35]
- leetcode 33. Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- LeetCode: Search in Rotated Sorted Array