题解 | #寻找峰值#

寻找峰值

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

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

#如何看待2023届秋招##我的求职思考##你觉得今年秋招难吗#
全部评论

相关推荐

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