题解 | #二分查找-旋转数组的最小数字#

旋转数组的最小数字

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

/*分三种情况讨论:
1.mid位置的值大于右边界的值,那最小值一定在mid的右边;
2.mid位置的值等于右边界的值,无法判断,缩减右边界
3.mid位置的值小于右边界的值,那最小值要么是mid位置的值,要么在mid的左边*/
class Solution {
public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        int l =0;
        int r= rotateArray.size() - 1;
        while (l < r) {
            int mid = (l + r) / 2;
            if(rotateArray[mid] > rotateArray[r]) l = mid + 1;
            else if (rotateArray[mid] == rotateArray[r]) r--;
            else r=mid;
        }
        return rotateArray[l];
    }
};

全部评论
还是有点难度的这题
点赞 回复 分享
发布于 2023-05-30 09:03 广东
这个题解讲得很清晰,谢谢大佬
点赞 回复 分享
发布于 2023-05-30 09:18 广东

相关推荐

神哥了不得:你简历字体有点不太协调呀,下面的字实在太小了呀,而且项目也不太行,建议换几个高质量的项目,面试会多很多
点赞 评论 收藏
分享
牛客963010790号:一般是hr拿着老板账号在招人不是真是老板招
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务