[数组基础]峰值

题目描述

输入 N 个整数,表示股票指数的N个时刻的值,如果有一个时刻的值比前一刻和后一刻的值都 大,就称为一个高峰值,计算共有多少个高峰? 注:第1个和最后一个值不能算高峰。

输入格式

第一行1个整数n,范围在[1,100]。 第二行有n个[1,10000]范围的整数,整数间用一个空格分隔。

输出格式

只一个整数,高峰的个数。

样例输入/输出

输入数据 1

复制代码
7
7  12  8  8  5  6  4

输出数据 1

复制代码
2

解题思路:

题目要求计算给定股票指数序列中的高峰值个数。高峰值定义为一个时刻的值比前一刻和后一刻 的值都大,但第一个和最后一个值不能算作高峰值。

解题思路:

  1. 定义一个整型数组a来存储输入的股票指数序列。

  2. 使用一个循环将输入的股票指数逐个存入数组a中。

  3. 使用一个循环遍历数组a的第2个元素到倒数第2个元素,判断是否为高峰值。

  4. 如果当前元素a[i]比前一元素a[i-1]和后一元素a[i+1]都大,则计数器s加1。

  5. 循环结束后,输出计数器s的值,即高峰值的个数。

C++代码如下:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){ 
    long long n,a[100+5],s=0;
    cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=2;i<n;i++)
	{
		if(a[i]>a[i+1]&&a[i]>a[i-1])
		s++;
	}	
		
	cout<<s;
    return 0;
}

复杂度分析:

  • 时间复杂度:O(n),其中n为输入的整数个数,需要遍历一次数组a。

  • 空间复杂度:O(n),需要使用一个大小为n的数组a来存储输入的整数序列。

点个赞吧,帅哥美女们,本人为小学生。

相关推荐
cpp_250113 小时前
P1910 L 国的战斗之间谍
数据结构·c++·算法·题解·洛谷·背包dp
txzrxz13 小时前
c++深度搜索讲解及例题
开发语言·c++·深度搜索·例题讲解
|_⊙13 小时前
红黑树 (C++)
开发语言·c++·学习
楼田莉子13 小时前
同步/异步日志系统:工具类以及日志的简单模块
linux·服务器·数据结构·c++
王老师青少年编程13 小时前
动态规划之【树形DP】第4课:树形DP应用案例实践3
c++·动态规划·dp·树形dp·csp·信奥赛·提高组
七点半77014 小时前
FFmpeg C++ AI视觉开发核心手册 (整合版)适用场景:视频流接入、AI模型预处理(抽帧/缩放/格式转换)、高性能算法集成。
c++·人工智能·ffmpeg
A.A呐14 小时前
【C++第二十八章】单例模式
c++·单例模式
玖釉-14 小时前
C++ 硬核剖析:if 语句中的“双竖杠” || 到底怎么运行的?
开发语言·c++
m0_7167652314 小时前
数据结构三要素、时间复杂度计算详解
开发语言·数据结构·c++·经验分享·笔记·算法·visual studio
And_Ii14 小时前
3740. 三个相等元素之间的最小距离 I
c++·算法