题解 | 求峰谷点数

求峰谷点数

https://www.nowcoder.com/practice/4015c0d05e1f42028520494b7ecef2b8

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 求序列a中的峰、谷点的个数
     * @param a int整型vector 序列a
     * @return int整型
     */
    int countPeakPoint(vector<int>& a) {
        // write code here
        if(a.size()<3) return 0;
        int num=0;
        for(auto it=a.begin()+1;it<a.end()-1;it++){
            const auto& pre=*(it-1);
            const auto& mid=*it;
            const auto& last=*(it+1);
            if((mid<pre && mid<last)||(mid>pre && mid>last)) num++;
        }
        return num;
    }
};

很简单的题,但是这里我提供一条与众不同的思路

供参考 QAQ!(迭代器挺好用的)

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务