题解 | #二分#

旋转数组的最小数字

http://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba

二分

class Solution {
public:
    int minNumberInRotateArray(vector<int> nums) {
        int n = nums.size();
        if(n == 0) return 0;
        int left = 0, right = n - 1;
        int res = INT_MAX;
        while(left < right){
            int mid = left + (right - left) / 2;
            if(nums[left] == nums[mid]){
                res = min(res, nums[left]);
                left ++;
                continue;
            }
            if(nums[mid] > nums[left]){
                res = min(res, nums[left]);
                left = mid + 1;
            }else{
                right = mid;
            }
        }
        res = min(res, nums[left]);
        return res;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务