题解 | 求峰谷点数
求峰谷点数
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!(迭代器挺好用的)