解决旋转数组二分查找的万能程序
2014-12-02 20:51
260 查看
class Solution { public: bool search(int A[], int n, int target) { int low = 0, high = n - 1; while(low <= high){ int mid = low + ((high - low) >> 1); if(A[mid] == target){ return true; } if(A[low] == A[mid] && A[mid] == A[high]){ low++; high--; continue; } if(A[low] <= A[mid]){//mid的左边有序 if(A[low] <= target && target < A[mid]){//目标数确定在mid的左半边 high = mid - 1; }else{ low = mid + 1; } }else{//mid的右边有序 if(A[mid] < target && target <= A[high]){//目标数确定在mid的右半边 low = mid + 1; }else{ high = mid - 1; } } } return false; } };
相关文章推荐
- 旋转数组的二分查找
- 旋转数组的二分查找
- (二分查找思想)从有序递增旋转数组45679123 中找到数字6的位置
- 旋转数组 二分查找 查找一个目标值
- (二分查找思想)从有序递增旋转数组45679123 中找到数字6的位置
- 旋转有序数组的二分查找
- Search in Rotated Sorted Array II 旋转数组二分查找 有重复
- leetcode 81. Search in Rotated Sorted Array II-旋转数组|二分查找
- 旋转数组的二分查找
- 旋转数组(二分查找)
- 微策略面试题:在旋转后的数组中查找元素(二分查找)
- LeetCode-Find Minimum in Rotated Sorted Array II-旋转排序数组找最小-二分查找
- Search in Rotated Sorted Array 在旋转过的有序数组中进行二分查找 重点看解法二 三(重重)
- 二分查找——旋转数组的最小数字
- 在一个旋转过的有序数组上实现二分查找 收藏
- 旋转数组的二分查找
- 二分查找解决数组中出现数字的次数
- LeetCode-Search in Rotated Sorted Array II-在旋转数组中搜索-二分查找
- 剑指Offer面试题8旋转数组的最小数字(二分查找)附带快排和按年龄排序
- 循环有序数组/旋转数组的二分查找