和153的情況類似,主要是有相等重複的情況,需要將right-1
class Solution {
public:
int findMin(vector<int>& nums) {
if(nums.size() == 0 ) return 0;
int left(0), right(nums.size()-1), mid((right+left)/2);
while(left < right){
//cout << "left is:" << left << "right is:" << right << "mid is:" << mid;
if(nums[mid] > nums[right]) left = mid + 1;
else if(nums[mid] < nums[right]) right = mid;
else right = right - 1;
mid = (right + left) /2;
}
return nums[mid];
}
};