题解 | #寻找峰值#

寻找峰值

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

题目 一题多解

官方 又是 二分的应用

最难得部分 还是 那个left right更新的比较逻辑地方。就是 nums[mid]< nums[mid+1]选用位置

```c++

class Solution {

public:

    int findPeakElement(vector<int>& nums) {

        // write code here

        if(nums.size()==1)

        return 0;

        else{

            int l =0 , r = nums.size()-1;

            int mid =0;

            while(l<r){

                mid = l + ( (r-l)>>1);

                //if( vector[mid]) 

                //无序数据 到底和谁比较?

                if(nums[mid]< nums[mid+1]){

                    l = mid+1 ; //往右边走:left bigger

                }else{

                    r = mid; //right lower

                }

                

            }

            return l;

        }

    }

};

```

全部评论

相关推荐

头像
09-29 16:18
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务