题解 | #KiKi学结构体和指针#

寻找峰值

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

峰值

1.如果数组长度为0或者1 直接返回0 2.首先找两端点是不是比旁边的值大 大就是峰值直接返回 3.找一个变量索引中值 利用二分法不断缩小范围 返回最后的索引中值变量



public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int findPeakElement (int[] nums) {
        // write code here
        if(nums == null){
            return 0;
        }
        if(nums.length == 1){
            return 0;
        }
        if(nums[0] > nums[1]){
            return 0;
        }
        if(nums[nums.length-1] > nums[nums.length-2]){
            return nums.length - 1;
        }
        int L = 0;
        int R = nums.length - 1;
        int index = L + ((R-L)>>1);
        while(L < R){
            if(nums[index] > nums[index-1] && nums[index] > nums[index+1]){
                return index;
            }
            if(nums[index] < nums[index-1]){
                R = index - 1;
                index = L + ((R-L)>>1);
            }
            if(nums[index] < nums[index+1]){
                L = index + 1;
                index = L + ((R-L)>>1);
            }
        }
        return index;

//         int L = 0;
//         int R = nums.length-1;
//         while(L < R){
//             int index = L + ((R-L)>>1);
//             if(nums[index] > nums[index+1]){
//                 R = index;
//             }else{
//                 L = index + 1;
//             }
//         }
//         return R;

    }
}
全部评论

相关推荐

影04714:把图书管理系统那个项目经验内容适当的减少掉,然后改成据为己有不要说团队项目,因为图书管理系统这类常见的谁来了都能独立写出来,提问能圆过来即可
点赞 评论 收藏
分享
敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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