BM19 寻找峰值

Posted 唐 昊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BM19 寻找峰值相关的知识,希望对你有一定的参考价值。

解法一:使用目标值遍历比较

 public static int findPeakElement(int[] nums) 
        if (nums.length < 3) 
            if(nums.length == 1 )
                return 0;
            
            return nums[0] > nums[1] ? 0:1;
        

        // write code here
        int index = 1;
        while (index < nums.length - 1) 
            int target = nums[index];
            if (target > nums[index - 1] && target > nums[index+1]) 
                return index;
            
            index++;
        
        return nums[1] > nums[0] ?nums.length - 1:0;
    


优化
解法二:

 public int findPeakElement (int[] nums) 
        if(nums.length==1) return 0; 
        for (int i = 1; i < nums.length - 1; i++)  
            if(nums[i]>nums[i-1] && nums[i]> nums[i+1])
             return i;
        
   
        return nums[0] > nums[1] ? 0 : nums.length - 1;
    

以上是关于BM19 寻找峰值的主要内容,如果未能解决你的问题,请参考以下文章

java牛客BM19. 寻找峰值

java牛客BM19. 寻找峰值

162. 寻找峰值(二分 logn)

二分法07:寻找峰值

LeetCode 162. 寻找峰值

寻找峰值