這些題比較考驗邊界條件
Find Minimum in Rotated Sorted Array
class Solution {
public:
int findMin(vector<int> &num) {
int left = 0, right = num.size()-1;
while(num[left] > num[right]){
int mid = (left+right) >> 1;
if(num[mid] < num[right])
right = mid;
else
left = mid+1;
}
return num[left];
}
};
Find Minimum in Rotated Sorted Array II
class Solution {
public:
int findMin(vector<int> &num) {
int left = 0, right = num.size()-1;
while( num[left] >= num[right]){
int mid = (left+right) >> 1;
if(num[mid] < num[right])
right = mid;
else if(num[mid] > num[right])
left = mid+1;
else
right--;
}
return num[left];
}
};