题解 | #寻找峰值#

寻找峰值

http://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76



public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int findPeakElement (int[] nums) {
        // write code here
        int n=nums.length;
        
        //判断第一个元素或最后一元素是否为峰值
        if(n==1){//当数据长度为1时,返回0
            return 0;
        }else if(n>=2){//长度大于等于2时,才能判断一个或最后一个元素是否为峰值
                if(nums[0]>nums[1] ||n==1){
                return 0;
            }
            if( nums[n-1]>nums[n-2]){
                return n-1;
            }
        }
        while(true){//这里while去掉后会显示无返回值
            for(int i=1;i<n-1;i++){//遍历中间数组,直到找到峰值
                if(nums[i]>nums[i-1] && nums[i]>nums[i+1]){
                    return i;
                }
            }  
        }
            
    }
     
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务