您的位置:首页 > 其它

LeetCode - Refresh - Search in Rotated Sorted Array

2015-03-23 13:05 288 查看
Two condition need to equal:

1. A[mid] >= A[start]. Because mid = (start + end)/2; it shifts left

2. A[end] >= target. Since did not check A[end] now.

class Solution {
public:
int search(int A[], int n, int target) {
int start = 0, end = n-1, mid = 0;
while (start <= end) {
mid = (start + end)/2;
if (A[mid] == target) return mid;
if (A[mid] >= A[start]) {
if (A[start] > target) {
start = mid+1;
} else if (A[mid] > target) {
end = mid - 1;
} else start = mid+1;
} else {
if (A[mid] > target) end = mid-1;
else if (A[end] >= target) start = mid+1;
else end = mid-1;
}
}
return -1;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: