22. 旋转数组的最小数字 - AcWing题库
遍历 c++
class Solution {
public:
int findMin(vector<int>& nums) {
int min=INT_MAX;
int min_n=0;
if(num.size()==0)return -1;
else
{
for(int i=0;i<nums.size();i++)
{
min_n=min(min_n,num);
}
}
}
return min_n;
};
二分 c
int findMin(int* nums, int numsSize) {
if (numsSize == 0) {
return -1;
}
int k=0;
while(nums[k]==nums[k+1])k++;
while(nums[numsSize-1]==nums[k])numsSize--;
int l = 0;
int r = numsSize - 1;
while (l <= r) {
int mid = (l + r) / 2;
if (nums[mid] < nums[r]) {
r = mid-1;
} else if (nums[mid] > nums[r]) {
l = mid + 1;
} else {
r--;
}
}
return nums[l];
}