leetcode题目例题解析(十四)

leetcode题目例题解析(十四)

Find Peak Element

题目描述:

A peak element is an element that is greater than its neighbors.
Given an input array where num[i] ≠ num[i+1], find a peak element and return its index.
The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.
You may imagine that num[-1] = num[n] = -∞.
For example, in array [1, 2, 3, 1], 3 is a peak element and your function should return the index number 2.

题意解析:

这道题就是找一个元素,他的左右邻都比他小

解题思路:

直接按照问题,遍历就可以了,注意两端特殊情况

代码:

class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        int length = nums.size();
        int flag;
        for(int i = 0; i < length; i++) {
            flag = 0;
            if (i == 0) {
                flag ++;
            } else if (nums[i - 1] < nums[i]){
                flag++;
            }
            if (i + 1 == length) {
                flag += 1;
            } else if (nums[i] > nums[i + 1]) {
                flag++;
            }
            if (flag == 2)
                return i;
        }
        return 0;
    }
};

原题目链接:
https://leetcode.com/problems/find-peak-element/description/

猜你喜欢

转载自blog.csdn.net/OzhangsenO/article/details/78935721
今日推荐