题解 | #旋转数组的最小数字#

旋转数组的最小数字

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;
       int right = nums.size() -1;
       while (left < right) {
            int mild = (left + right)/2;
            if (nums[mild]>nums[right]) {
                left = mild + 1;
            }
            else if (nums[mild]==nums[right]) {
                right--;
            }
            else {
                right = mild;
            }
       }
       return nums[left];
    }
};

二分法搜索,不断缩小搜索区域,直到找到序列AB中B的左端点。

全部评论

相关推荐

去B座二楼砸水泥地:攻击力过弱,有待加强😂
点赞 评论 收藏
分享
头像
10-22 17:08
安徽大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务