问题描述
小丽在上班编程课时,发现有一些数很有趣,这些数正好比该数左右相邻的数都大,就像大海里的浪花的浪尖一样美丽;小丽就给这些数起了一个名字叫做“浪尖数”,比如: 2 3 1 中的 3 ,就像一朵波浪的浪尖一样,正好比左右两个数都大。
请你编程帮助小丽计算一下,一个数组中有多少个“浪尖数”。
输入
第一行,是一个整数 n 代表数组找那个有 n 个数( n≤100);
第二行有 n 个整数,用空格隔开。
输出
输出一个整数,代表满足条件的浪尖数的数量。
样例
输入
5
1 3 2 4 1
输出
2
输入
8
2 1 5 9 8 8 2 8
输出
1
C++
#include <iostream>
#include <vector>
using namespace std;
int countCrests(vector<int>& nums) {
int count = 0;
int n = nums.size();
for (int i = 1; i < n - 1; i++) {
if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
count++;
}
}
return count;
}
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
int crestCount = countCrests(nums);
cout << crestCount << endl;
return 0;
}
当我们需要计算一个数组中“浪尖数”的数量时,我们可以按照以下步骤进行计算:
- 首先,我们读取输入的数组长度
n
。 - 然后,我们读取输入的数组元素,并将它们存储在一个整数向量
nums
中。 - 我们使用一个函数
countCrests
来计算“浪尖数”的数量。函数接受一个整数向量nums
作为参数,并返回一个整数表示“浪尖数”的数量。 - 在
countCrests
函数中,我们初始化count
为 0,用于统计“浪尖数”的数量。 - 使用一个循环,遍历数组
nums
的第 2 个元素到倒数第 2 个元素(不包括两端的元素),判断当前元素是否比左右两个元素都大。如果是,则将count
加一。 - 循环结束后,返回最终的
count
值。 - 在
main
函数中,我们调用countCrests
函数,并将计算得到的“浪尖数”数量存储在crestCount
变量中。 - 最后,将
crestCount
输出。
通过以上的步骤,我们可以计算出数组中“浪尖数”的数量,并将结果输出。
希望以上解释对您有帮助。如果您还有其他问题,请随时提问。