题解 | #寻找峰值#

寻找峰值

http://www.nowcoder.com/practice/1af528f68adc4c20bf5d1456eddb080a

二分查找思路

public int solve (int[] a) {
        // write code here
        if(a== null || a.length == 0) return 0;
        int ans = Integer.MIN_VALUE;
        for(int i = 0;i < a.length-1;++i){
            int low = i,high = a.length-1;//要留出两个数字,所以low最大是a.length-2
             while(low < high){
                int mid = low + (high-low)/2;
                if(a[mid] < a[mid+1]){
                    low = mid+1;
                }else{
                    high = mid;
                }
            }
            ans = Math.max(ans,low);
        }
        return ans;
    }
全部评论

相关推荐

06-04 16:50
腾讯_TEG_技术
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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