题解 | 旋转数组的最小数字 学习这个二分的思想
旋转数组的最小数字
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int minNumberInRotateArray(vector<int>& nums) {
// write code here
//没思路。。。
//找这个最小值。找这个旋转点 依旧二分 二分找的是一个分界点。
int left=0,right=nums.size()-1;
while(right>left){
int mid=(left+right)/2;
if(nums[mid]>nums[right])left=mid+1;
else if(nums[mid]<nums[right])right=mid;
else right--;
}
return nums[left];
//
}
};
查看20道真题和解析