Search in Rotated Sorted Array
来源:互联网 发布:程序员之路 周金桥 编辑:程序博客网 时间:2024/05/17 04:25
Search in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might 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.
二分查找的推广,需要增加判断条件,为方便举例我们假设要找的数字为3,先用mid把数列分为两种情况,再讨论两种情况的子情况
mid = first+ ( end - first)/2;
if ( A[mid ] == target ) return mid;(找到终止)
if ( A[first] <= A[mid]) (这个时候还得考虑两种情况,1 2 3 4 5 6 7 8 9 和 5 6 7 8 9 1 2 3 4)
{
if( A[first] < target && target < =A[mid])
{ end=mid ;}
else
{ first= mid+1;}
}
else ./A[first] > A[mid]) (7 8 9 1 2 3 4 5 6 和 9 1 2 3 4 5 6 7 8)
{
if(A[mid] < target && target <=A[end-1])
{ first = mid+1}
else
{ end = mid;}
}
class Solution {public: int search(int A[], int n, int target) { int first=0; int end=n; while(first!=end) { int mid =first+ (end - first)/2; if(A[mid] == target) return mid; if(A[first] <= A[mid]) { if(A[first] <= target && target<A[mid] ) { end = mid; } else { first = mid+1; } } else { if(A[mid] < target && target <= A[end-1] ) { first = mid+1; } else { end = mid; } } } return -1; }};
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- SDJZU_新生_递推动规_HDU 2041- 超级楼梯
- 杭电判断能不能连着连吃不一样的糖
- Android Studio真机编译USB无法识别
- 的生日动画化吼吼吼
- “数字化神经元调控修复体系”治愈率高备受癫痫患者青睐
- Search in Rotated Sorted Array
- Use the MachineKey API to protect values in ASP.NET
- memcached java client
- 的融合的人的吼吼吼
- yum 重复安装问题
- 士大夫把饭大方闹洞房呢
- Mysql中mysql 1366错误
- 2522525225
- CIOpaas让app会打电话的通信平台