一本通题库 第一部分 C++语言 --> 第五章 数 组 1116:最长平台

1116:最长平台

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 30087     通过数: 9565

【题目描述】

已知一个已经从小到大排序的数组,这个数组的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在 1,2,2,3,3,3,4,5,5,61,2,2,3,3,3,4,5,5,6中1,2−2,3−3−3,4,5−5,61,2−2,3−3−3,4,5−5,6都是平台。试编写一个程序,接收一个数组,把这个数组最长的平台找出来。在上面的例子中3−3−33−3−3就是最长的平台。

【输入】

第一行有一个整数nn,为数组元素的个数。第二行有nn个整数,整数之间以一个空格分开。

【输出】

输出最长平台的长度。

【输入样例】

10
1 2 2 3 3 3 4 5 5 6

【输出样例】

3

源代码
#include<cstdio>
#include<iostream>
using namespace std;
int a[100000];
int main(void)
{
	int n,w=1,s=1;
	a[0]=-1;

	cin>>n;

	for(int i=1;i<=n;i++)
	    cin>>a[i];

	for(int i=1;i<n;i++)
	{
		if(a[i]==a[i+1])
		{
		  w++;
		  if(s<w)
			 s=w;
		}
		else
		  w=1;
	}

	cout<<s<<endl;

	return 0;
}
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int a[10000];
int main(void)
{
	int n,w=1,s=-1;
	a[0]=-1;

	memset(a,0x3a,sizeof(a));

	cin>>n;

	for(int i=1;i<=n;i++)
	    cin>>a[i];

	for(int i=1;i<=n;i++)
	{
		if(a[i]==a[i-1])
		  w++;
		else
		  w=1;
		if(s<w)
		  s=w;		 

	}

	cout<<s<<endl;

	return 0;
}
这道题的思路很简单,但是在题目中并没有交代数组的大小,所以这里数组的大小也是影响得分的主要因素,这里第二个代码有只是开出了a[10000],数组的大小不够,所以再不明了数组的大小时,要尽可能往大里开数组,否则可能会导致数组越界的情况,也是一个值得注意的要点。
 

原文地址:https://www.cnblogs.com/jd1412/p/12245938.html

时间: 2024-10-13 22:56:40

一本通题库 第一部分 C++语言 --> 第五章 数 组 1116:最长平台的相关文章

一本通题库 第一部分 C++语言 --&gt; 第五章 数 组 1114:白细胞计数

1114:白细胞计数 时间限制: 1000 ms         内存限制: 65536 KB提交数: 26662     通过数: 8522 [题目描述] 医院采样了某临床病例治疗期间的白细胞数量样本nn份,用于分析某种新抗生素对该病例的治疗效果.为了降低分析误差,要先从这nn份样本中去除一个数值最大的样本和一个数值最小的样本,然后将剩余n−2n−2个有效样本的平均值作为分析指标.同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有效样本(即不包括已扣除的两个样本)与该平均值

一本同题库 第一部分 C++语言 --&gt; 第四章 循环结构的程序设计 1099

1099:第n小的质数 时间限制: 1000 ms         内存限制: 65536 KB提交数: 19092     通过数: 9527 [题目描述] 输入一个正整数n,求第n小的质数. [输入] 一个不超过10000的正整数n. [输出] 第n小的质数. [输入样例] 10 [输出样例] 29 源代码 #include<iostream> #include<cmath> using namespace std; int main() { int n; int i,j; i

一本通题库1111

本人极菜,第一次写博,拿了到比较简单的,漏洞过多,围观者多包涵(有点激动). 这是一道比较水的题库题,不高兴的津津,年前做的时候被空了出来.(毕竟当时太菜) 现在来看,就没那么难了,以下代码. #include<iostream> using namespace std; int a[8][3]; int b[8]; int main() { for(int i=1;i<=7;i++) {for(int j=1;j<=2;j++) cin>>a[i][j]; } for

CCNA题库第一部分

1.Which technology supports the stateless assignment of IPv6 addresses?(Choose two.) 哪些技术支持无状态任务的IPv6地址?(BD) A. DNS B. DHCPv6 C. DHCP D. autoconfiguration 2.After you configure the Loopback0 interface, which command can you enter to verify the status

一本通题库 1115

[题目描述] 给定一个非负整数数组,统计里面每一个数的出现次数.我们只统计到数组里最大的数. 假设 Fmax(Fmax<10000)Fmax(Fmax<10000)是数组里最大的数,那么我们只统计{0,1,2.....Fmax}{0,1,2.....Fmax}里每个数出现的次数. [输入] 第一行nn是数组的大小.1≤n≤100001≤n≤10000. 紧接着一行是数组的nn个元素. [输出] 按顺序输出每个数的出现次数,一行一个数.如果没有出现过,则输出00. 对于例子中的数组,最大的数是3

C语言第五章 语句

在上章中,我们的数据是通过=来赋予变量的,但这不够,它不能为变量赋予程序运行时输入的值,为此我们引入I/O语句来完成, 5.3 变量的作用域 变量的作用域是指变量的作用范围,也称为变量的可见性,很显然,变量在定放之后,并不是任何一个地方都可以使用,如定义在语句块里的变量在语句块外就不可以使用了,一个代码文件里的变量在其它代码文件里也不能使用.依照作用范围的大小,我们把变量分为局部变量和全局变量.

第一行代码笔记-第五章

1.标准广播,异步,所有广播接收器同时接收. 有序广播,同步,同一时间只一个广播接收器接收,待处理完才传递至下一个. 2.动态注册广播接收器,即在代码中注册(记得取消注册),灵活自由,但必须在程序启动后才能接收. 静态注册,即在AndroidManifest.xml中注册,可实现在程序未启动是接收广播. 3.静态注册广播接收器时,"Exported"属性表示是否允许该广播接收器接收本程序以外的广播:"Enabled"表示是否启用该广播接收器. 4.(之前章节的)在a

C语言 第五章 循环结构

一.for 二.while 三.do while 四.continue 五.break 一.for 请在屏幕上输出1000个*号 printf("*************************...."); #include "stdio.h" void main() { int i; for(i=1;i<=1000;i++){ printf("*"); } } for(表达式A:表达式B:表达式C){要重复执行的代码块D;} 1.表达

c语言第五章-循环结构I

需要多次重复执行一个或多个任务的问题考虑使用循环来解决while循环:格式:while(条件表达式){    循环体      }循环三要素:初始化.条件表达式.增量条件表达式必须是可改变的量,否则可能形成死循环while和do while的区别:while循环先判断条件是否为真,再决定是否执行循环体do while循环是先执行一次循环体,再判断当条件为假时,do while比while多执行一次循环嵌套循环:外打行,内打列只有内循环执行完毕,外循环才会执行一次循环结构的特点是,在给定条件成立时