标签:this htm lex numbers ram 数组 blank button dex
There is an integer array which has the following features:
We define a position P is a peek if:
A[P] > A[P-1] && A[P] > A[P+1]
Find a peak element in this array. Return the index of the peak.
The array may contains multiple peeks, find any of them.
Given [1, 2, 1, 3, 4, 5, 7, 6]
Return index 1
(which is number 2) or 6
(which is number 7)
解法一:
class Solution { public: /** * @param A: An integers array. * @return: return any of peek positions. */ int findPeak(vector<int> A) { int left = 0, right = A.size() - 1; while (left < right) { int mid = left + (right - left) / 2; if (A[mid] < A[mid + 1]) left = mid + 1; else right = mid; } return right; } };
解法二:
class Solution { public: /** * @param A: An integers array. * @return: return any of peek positions. */ int findPeak(vector<int> A) { for (int i = 1; i < A.size(); ++i) { if (A[i] < A[i - 1]) return i - 1; } return A.size() - 1; } };
[LintCode] Find Peak Element 求数组的峰值
标签:this htm lex numbers ram 数组 blank button dex
原文地址:http://www.cnblogs.com/grandyang/p/6117182.html