相信我的题解可能没什么用
题目传送门
这道题的难点不在判断低洼地上,低洼地很好判断
就是两边比中间高
有问题的是有高度相同的点,但高度相同的一个平台
如果两边都比该平台高,也只算一个洼地
所以这道题的关键就是去重
再找一个数组存一下就行了
话不多说 上代码
#include <bits/stdc++.h>//万能的万能头
using namespace std;
int a[10050],b[10050];//这道题的n<=10000 所以数组要开10050
int main(){
int n,j=0,cnt=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}//输入
b[0]=a[0];
j++;
for(int i=1;i<n;i++){
if(a[i]!=a[i-1]){
b[j]=a[i];
j++;
}
}//12到18行去重
for(int i=1;i<j-1;i++){
if(b[i]<b[i-1] && b[i]<b[i+1]){
cnt++;
}
}//判断两边是否比中间高 计数
cout<<cnt;//输出
return 0;//华丽结束
}