题目描述
横看成岭侧成峰,远近高低各不同。游人从远处、近处、高处、地处等不同角度观察庐山面貌是可以得到不同观感的。今天我们则要以上帝视角来看山,由于你处于上帝视角,你知道每座山的高度,其中高度值均为整数。现需要你根据一排山的高度,统计出有多少个山峰(凸的地方)?
山高分别为 0 1 0 2 1 2 0 0 2 0
输入
两行,第一行n,表示有n个数。
第2行连续n个数表示山的高度,保证首尾为0。(3<=n<=50,0<=高度<=1000)
输出
一个数,山峰的个数。
样例输入
10
0 1 0 2 1 2 0 0 2 0
样例输出
4
#include<iostream>
#include<cstdio>
using namespace std;
int a[1001];
int main()
{
int n,t=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n-1;i++)
{
if(a[i-1]<a[i]&&a[i]>a[i+1])//这里要注意一下当前第a[i-1]山峰
//的高度比第a[i]要小同时在用a[i]>a[i+1]来判断是否为凹形
t++;
}
if(t==0)
cout<<"1"<<endl;
else
cout<<t<<endl;
}
- 这道题挺水的,主要还是要判断a[i-1]<a[i],
例
输入:
7
1 2 3 5 4 2 1输出:
3
这样就Wrong Answer应该是
输入:
7
1 2 3 5 4 2 1输出:
1
小白大佬求放过