-
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;
}
};
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5094315.html,如需转载请自行联系原作者