AcWing 22. 非单调情况下的二分(Orz)
原题链接
中等
作者:
Nan97
,
2021-04-07 12:42:15
,
所有人可见
,
阅读 448
y总二分写法
class Solution {
public:
int findMin(vector<int>& a) {
int len = a.size();
if(len == 0) return -1;
if(a[0] < a[len -1]) return a[0];
while(a[len - 1] >= a[len - 2] && len >= 1) len --;
int l = 0 , r = len - 1;
while(l < r) {
int mid = l + r >> 1;
if(a[mid] >= a[0]) l = mid + 1;
else r = mid ;
}
return a[r];
}
};
sort 一下也能过
class Solution {
public:
int findMin(vector<int>& nums) {
sort(nums.begin() , nums.end());
if(nums.size() == 0) return -1;
return nums[0];
}
};