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

旋转数组的最小数字

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

import java.util.ArrayList;
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        int l = 0,r = array.length-1;
        //数组只包含一个值,最小值肯定是这个值
        if(array.length==1) return array[0];
        //二分查找
        while(l <= r){
            int mid = l+(r-l)/2;
            //范围左移
            if(array[mid]<array[r]){
                r = mid;
            //不知道最小值在那个范围,缩小范围
            }else if(array[mid]==array[r]){
                r--;
            //右移动
            }else{
                l = mid+1;
            }
        }
        return array[l];
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:51
点赞 评论 收藏
分享
想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务