153. Find Minimum in Rotated Sorted Array
标簽(空格分隔): leetcode array medium
題目
Suppose an array sorted in ascending order 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
).
Find the minimum element.
You may assume no duplicate exists in the array.
思路
本題考察的是二分搜尋,這裡需要建立兩個中間變量middle1,middle2,代碼很好了解。
代碼
class Solution {
public:
int findMin(vector<int>& nums) {
int l=,r=nums.size()-,middle1,middle2;
//判斷隻有一個元素的情況
if(r==)
return nums[];
//判斷沒有發生反轉的情況
if(nums[r]>nums[l])
return nums[l];
while(l<r)
{
middle1 =(l+r)/;
middle2 =(l+r)/ +;
if(nums[middle1]<nums[middle2]){
//判斷l,r更新的值
if(nums[middle1]>nums[])
l=middle2;
else
r=middle1;
}
if(nums[middle1]>nums[middle2])
{
return nums[middle2];
}
}
return nums[l];
}
};