美文网首页程序员
力扣 162 寻找峰值

力扣 162 寻找峰值

作者: zhaojinhui | 来源:发表于2020-10-15 01:54 被阅读0次

    题意:给定一个数组,找出一个比相邻两个数大的数

    思路:二分搜索数组

    1. 如果中间的数比后一个数大,那么e更新为m,因为m可能是结果
    2. 如果中间的数小于=后一个数,那么s更新为m+1,因为结果只能出现在m之后

    思想:二分查找

    复杂度:时间O(lgn),空间O(1)

    class Solution {
        public int findPeakElement(int[] nums) {
            int n = nums.length;
            int s = 0;
            int e = n-1;
            while(s<e) {
                int m = s+(e-s)/2;
                if(nums[m] > nums[m+1])
                    e = m;
                else 
                    s = m+1;
            }
            return s;
        }
    }
    

    相关文章

      网友评论

        本文标题:力扣 162 寻找峰值

        本文链接:https://www.haomeiwen.com/subject/sftnpktx.html