【LeetCode】Find Minimum in Rotated Sorted Array

来源:互联网 发布:数据接口类型 编辑:程序博客网 时间:2024/05/21 17:38

诶,二分查找一直是一个痛啊,搞不清楚要不要加1和等号的问题,真的挺郁闷的,本科学习的东西真的完全废掉了……真的得赶紧捡起来才行额


这道题目,当找到num[l]<=num[h]时候应该break,因为两种序列(先增 减到最小 然后增/一直增长)的规律(l和h的取值变化)是不一样的,要不然就出错了~


 public int findMin(int[] num) {        int l=0;        int h=num.length-1;        if(num[l]<num[h])return num[l];        while(l<h){        int mid = (l+h) >>1;        if(num[l]<=num[h])break;        if(num[mid]>num[l])l=mid+1;        else if(num[mid]<num[l])h=mid;        else {        return Math.min(num[l], num[h]);        }        }        return Math.min(num[l], num[h]);    }


0 0
原创粉丝点击