Find Peak Element

萝らか妹 提交于 2019-12-02 11:01:20
  • 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.

    这道题是水题,注意边界条件即可。
    C++ Code:

class Solution {
public:
    int findPeakElement(const vector<int> &num) {
    if (num.size() == 1)
    {
        return 0;
    }
    else if (num.size() == 2)
    {
        return num[0] > num[1] ? 0 : 1;
    }

    int i = 1;
    for (; i < (num.size()-1); i++)
    {
        if ((num[i] > num[i - 1]) && (num[i] > num[i + 1])){
            return i;
        }
    }

    if ((num[0] > num[1])){
        return 0;
    }
    else if (num[i-1] < num[i])
    {
        return i;
    }

    return 0;
    }
};
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!