题解 | #寻找峰值#

寻找峰值

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;
    }
};
全部评论

相关推荐

与火:这不接? 留子的钱不挣白不挣
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务