c++习题15-最长平台

目录

一,题目

二,思路

三,代码


一,题目

二,思路

  1. 因为题目没有给出存放平台的数组的元素个数可以取到的最大值,所以可以直接将存放平台的数组长度设为键盘输入的数组元素个数n,即a[n]。接着再对数组中的元素进行赋值。
  2. 然后遍历数组,将数组中的前后两个元素值进行判断:如果前后这两个元素值相同,那么让当前平台长度c自增,并再进行一次判断:如果当前平台长度c大于之前的平台最大长度m,那么将当前平台长度c赋值给平台最大长度m。如果前后这两个元素值不相同,此时平台断开,那么就让当前平台长度赋值为1,继续去循环,找到下一个连续的平台。(需要注意的是,当前平台长度c的初始值需要设为1,因为即使没有连续重复的元素,当前平台的长度也有1,例如,数组有2个元素:3,2,可以看到3和2不相等,没有连续重复的元素,此时当前平台长度c为1,平台最大长度m为1,如果将当前平台长度的初始值设为0,则结果错误,同理平台最大长度m也一样,m的初始值为1)
  3. 最后输出结果平台最大长度m。

三,代码

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

有问题请在评论区留言或者是私信我,回复时间不超过一天。

相关推荐
智者知已应修善业1 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
云泽8083 小时前
C++11 核心特性全解:列表初始化、右值引用与移动语义实战
开发语言·c++
AI进化营-智能译站4 小时前
ROS2 C++开发系列12-用多态与虚函数构建可扩展的ROS2机器人行为模块
开发语言·c++·ai·机器人
Morwit4 小时前
QML组件之间的通信方案(暴露子组件)
c++·qt·职场和发展
qeen874 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
图码4 小时前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
handler014 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
zhouwy1134 小时前
Linux进程与线程编程详解
linux·c++
A7bert7775 小时前
【YOLOv8pose部署至RDK X5】模型训练→转换bin→Sunrise 5部署
c++·python·深度学习·yolo·目标检测
li1670902706 小时前
第二十七章:智能指针
c语言·数据结构·c++·visual studio