题目
题解
- 关于旋转数组的二分查找
- 可以通过nums[mid]与首或者尾元素进行比较
代码
class Solution {
public:
int findMin(vector<int>& nums) {
int l=0,r=nums.size()-1;
int res=nums[0];
while(l<=r){
int mid=(l+r)/2;
if(nums[mid]>=nums[0]){
if(mid+1>nums.size()-1)
return res;
if(nums[mid]>nums[mid+1])
return nums[mid+1];
else
l=mid+1;
}
else
{
if(nums[mid]<nums[mid-1])
return nums[mid];
else
r=mid-1;
}
}
return res;
}
};