题目
题目描述
有一些数很有趣,这些数正好比该数左右相邻的数都大,就像大海里的浪花的浪尖一样美丽;名字叫做“浪尖数”,比如:
2
2
2
3
3
3
1
1
1中的
3
3
3,正好比左右两个数都大。
请你计算一下,一个数组中有多少个“浪尖数”。
输入
第一行,是一个整数
n
n
n代表数组找那个有
n
n
n个数
(
n
≤
100
)
(n≤100)
(n≤100)
第二行有
n
n
n个整数,用空格隔开。
输出
输出一个整数,代表满足条件的浪尖数的数量。
样例输入
5
1 3 2 4 1
样例输出
2
思路
循环第二个数到第n-1
个数(去掉边界),如果正好比左右两个数都大,浪尖数数量
+
1
+1
+1
AC代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int a[105],n,sum=0;
cin>>n;
for(int i=0; i<n; i++) {
cin>>a[i];
}
for(int i=1; i<n-1; i++) { //去掉边界
if(a[i-1]<a[i]&&a[i]>a[i+1]) { //判断如果正好比左右两个数都大
sum++; //浪尖数数量+1
}
}
cout<<sum;
return 0;
}