二分法的时间复杂度是O(logn)
1. 法一:遍历全部数组找到最小值 O(n);
2. 法二:对数组进行排序,最小值就是nums[0];
3. 法二:二分查找法 :对于有序数组 类似单峰函数的数组
class Solution {
public:
int findMin(vector& nums) {
int left = 0,right = nums.size()-1;
while(left nums[right]){
left = mid+1;
}else{
right = mid;
}
}
return nums[left];
}
};
如图:对于nums[right]:最小值左侧的数都大于nums[right],所以当nums[mid]>nums[right]时,最小值在mid的右侧;最小值右侧的数都小于nums[right],所以当nums[mid]
二分法详细描述



