东方博宜1401 - 浪尖数?

问题描述
小丽在上班编程课时,发现有一些数很有趣,这些数正好比该数左右相邻的数都大,就像大海里的浪花的浪尖一样美丽;小丽就给这些数起了一个名字叫做“浪尖数”,比如: 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;
}

当我们需要计算一个数组中“浪尖数”的数量时,我们可以按照以下步骤进行计算:

  1. 首先,我们读取输入的数组长度 n
  2. 然后,我们读取输入的数组元素,并将它们存储在一个整数向量 nums 中。
  3. 我们使用一个函数 countCrests 来计算“浪尖数”的数量。函数接受一个整数向量 nums 作为参数,并返回一个整数表示“浪尖数”的数量。
  4. 在 countCrests 函数中,我们初始化 count 为 0,用于统计“浪尖数”的数量。
  5. 使用一个循环,遍历数组 nums 的第 2 个元素到倒数第 2 个元素(不包括两端的元素),判断当前元素是否比左右两个元素都大。如果是,则将 count 加一。
  6. 循环结束后,返回最终的 count 值。
  7. 在 main 函数中,我们调用 countCrests 函数,并将计算得到的“浪尖数”数量存储在 crestCount 变量中。
  8. 最后,将 crestCount 输出。

通过以上的步骤,我们可以计算出数组中“浪尖数”的数量,并将结果输出。

希望以上解释对您有帮助。如果您还有其他问题,请随时提问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值