一、思路
在每个检查点中,我们只要判断:
- 它不是第 个或第 个点;
- 该点的比它相邻的点高。
如果都满足的话,那么该检查点就是山峰。
二、参考代码
#include<bits/stdc++.h>
using namespace std;
int t;
int main(){
cin>>t;
for(int Case=1;Case<=t;Case++){
int n,a[105],ans=0;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++){
if(i==1||i==n)continue;//点在首尾,那么就不是山峰
if(a[i]>a[i-1]&&a[i]>a[i+1])ans++;//点比两边的高,就是山峰,将答案加 1
}
cout<<"Case #"<<Case<<": "<<ans<<"\n";
}
return 0;
}
暂无评论