【Leetcode】Search in Rotated Sorted Array
2013-09-17 23:40
387 查看
在旋转的无重复的排序数组中查找某个数,要求时间复杂度O(logN)
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
思路:使用二分查找,若中间数大于等于最左端数,那左半部分必定有序,否则右半部分有序,通过将目标数与有序部分的最大与最小数比较就可以判断目标数位于哪一部分。代码如下:
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
0 1 2 4 5 6 7might become
4 5 6 7 0 1 2).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
思路:使用二分查找,若中间数大于等于最左端数,那左半部分必定有序,否则右半部分有序,通过将目标数与有序部分的最大与最小数比较就可以判断目标数位于哪一部分。代码如下:
class Solution { public: int search(int A[], int n, int target) { return search(A,0,n-1,target); } int search(int *ary, int start, int end, int target) { if (start > end) return -1; int mid = start + ((end-start)>>1); int number0 = ary[start]; int number = ary[mid]; int number1 = ary[end]; if (number == target) return mid; if (number >= number0) { if(target < number0 || target > number) return search(ary,mid+1,end,target); else return search(ary,start,mid-1,target); } // number < number0 if (target > number1 || target < number) return search(ary,start,mid-1,target); return search(ary,mid+1,end,target); } };
相关文章推荐
- [leetcode] Search in Rotated Sorted Array
- LeetCode | Search in Rotated Sorted Array
- [leetcode] 81.Search in Rotated Sorted Array II
- LeetCode: Search in Rotated Sorted Array
- 【leetcode】Search in Rotated Sorted Array II
- LeetCode 33 Search in Rotated Sorted Array(循环有序数组中进行查找操作)
- LeetCode-Search in Rotated Sorted Array(在反转数组中的关键字)
- leetcode: Search in Rotated Sorted Array
- LeetCode Search in Rotated Sorted Array
- [LeetCode] Search in Rotated Sorted Array
- 开始刷leetcode day42:Search in Rotated Sorted Array
- 【LeetCode】Search in Rotated Sorted Array && Search in Rotated Sorted Array II
- LeetCode 33: Search in Rotated Sorted Array
- LeetCode 33 Search in Rotated Sorted Array
- LeetCode: 81. Search in Rotated Sorted Array II
- 【leetcode】Search in Rotated Sorted Array
- LeetCode第33题之 Search in Rotated Sorted Array
- [LeetCode] Search in Rotated Sorted Array 解题报告
- leetcode 33.Search in Rotated Sorted Array
- leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法