题解 | #寻找峰值#
寻找峰值
http://www.nowcoder.com/practice/1af528f68adc4c20bf5d1456eddb080a
最快一次是 2ms 超过了 100% 的代码
不过我觉得大家代码写的应该差不多。直接倒序指针就行了,没什么好说的
class Solution { public: /** * 寻找最后的山峰 * @param a int整型一维数组 * @param aLen int a数组长度 * @return int整型 */ int solve(int* a, int aLen) { // write code here int i = aLen - 2; // 查看 a[aLen-1] 是否符合条件 if(a[aLen - 1] >= a[aLen - 2] ) return aLen - 1; while(i!=1){ if((a[i]>=a[i-1])&&(a[i]>=a[i+1])) return i; --i; } // 查看 a[0] 是否符合条件 if(aLen >=2 && (a[0]>=a[1])) return 0; // 实际上代码不应该会走到这里,所以这里随便填啦。只是为了编译通过 return aLen - 1; } };