zoukankan      html  css  js  c++  java
  • 一本通题库 第一部分 C++语言 --> 第五章 数 组 1116:最长平台

    1116:最长平台


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

    【题目描述】

    已知一个已经从小到大排序的数组,这个数组的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在 12233345561,2,2,3,3,3,4,5,5,6中12233345561,2−2,3−3−3,4,5−5,6都是平台。试编写一个程序,接收一个数组,把这个数组最长的平台找出来。在上面的例子中3333−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],数组的大小不够,
    所以再不明了数组的大小时,要尽可能往大里开数组,否则可能会导致数组越界的情况,也是一个值得注意的要点。
     
  • 相关阅读:
    详细了解SQLITE 优缺点 性能测试
    特例 FOR 循环
    java获得CPU使用率,系统内存,虚拟…
    中国历史表
    java&nbsp;内部类
    JAVA&nbsp;修饰符
    ubuntu android 命令环境下操作sqlite
    ANDROID 绝对布局 相对布局 Linear…
    JAVA 取系统当前日期 少8个小时
    linux 根目录下的子目录的意义
  • 原文地址:https://www.cnblogs.com/jd1412/p/12245938.html
Copyright © 2011-2022 走看看