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.

    这道题是水题,注意边界条件就可以。
    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;
    }
};
posted @ 2016-01-02 11:11  mfrbuaa  阅读(129)  评论(0编辑  收藏  举报