算法练习:最长平台问题

内容:一直一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串相同的元素,并且这个元素不能再延伸。

例如,在1,2,2,3,3,3,4,5,5,6中1,2,2,3,3,3,4,5,5,6都是平台.试编写一个程序,接受一个数组,把这个数组中最长的平台找出来。在这个例子中, 3,3,3就是该数组的中的最长的平台。

说明:

这个程序十分简单,但是编写好却不容易,因此在编写程序时应注意考虑下面几点:

1.使用变量越少越好

2.能否只把数组的元素每一个都只查一次就得到结果。

3.程序语句越少越好。

ps:这个问题曾经困扰过David Gries这位知名的计算机科学家。

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神。。奥,不对就解决了!

#include <iostream>
using namespace std;   

int _tmain(int argc, _TCHAR* argv[])
{
    int index = 0;             //数组下标索引
    int indexEnd = 0;          //目标索引
    int count = 0;             //计数器
    int tempCount = 0;         //临时计数器
    int arrayNum[100] = { 0 }; //零不算输入元素,所以结尾判零即可
    cout << "请输入一个数字序列,数字间以空格隔开,用0表示输入结束:" << endl;
    while((cin >> arrayNum[index])&&arrayNum[index]!=0)
        ++index;
    index = 0;
    while (arrayNum[index] != 0)
    {
        //cout << arrayNum[index] << endl;
        if (arrayNum[index + 1] != 0)
        {
            if (arrayNum[index] == arrayNum[index + 1])
            {
                tempCount++;
            }
            else
            {
                if (tempCount > count)
                {
                    count = tempCount;
                    indexEnd = index;
                }
                tempCount = 0;
            }
        }
        ++index;
    }
    cout << "输入数字序列为:" << endl;
    index = 0;
    while (arrayNum[index] != 0)
    {
        cout << arrayNum[index];
        ++index;
    }
    cout << endl;
    cout << "最大的平台是:" << endl;
    cout << arrayNum[indexEnd] <<endl;
    cout << "连续次数为:" << endl;
    cout << count + 1 << endl;
    getchar();
    getchar();
    return 0;
}

实验结果:

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, int
, index
, 元素
, 平台
, 一个
连续最长
,以便于您获取更多的相关知识。

时间: 2024-12-31 22:17:45

算法练习:最长平台问题的相关文章

一个算法问题 最长子串

问题描述 一个算法问题 最长子串 最长子串 Time Limit : 4000/2000ms (Java/Other) Memory Limit : 65535/65535K (Java/Other) Total Submission(s) : 19 Accepted Submission(s) : 1 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 小E最近开始研究数列,于是小J就给他出了

【Spark Summit East 2017】将HPC算法引入大数据平台

本讲义出自Nikolay Malitsky在Spark Summit East 2017上的演讲,主要介绍了使用轻量级源工具集开发的,基于MPI的Spark平台的扩展,扩展的背景和原理正如题目所示:将HPC算法引入大数据平台.

实时优化算法实现智能物流平台

本文PPT来自阿里巴巴集团朱胜火于10月14日在2016年杭州云栖大会上发表的演讲,分享主题为<物流平台的实时优化算法>. 智能物流是利用集成智能化技术,使物流系统能模仿人的智能,具有思维,感知,学习,推理判断和自行解决物流中某些问题的能力.今天,2014年加入阿里巴巴的朱胜火向我们介绍有关智能物流的机器学习和优化算法. 智能物流呈现出在线.实时和流式的特点,应用在仓储.末端,使整个菜鸟网络展现新的姿态.前置切箱.装箱算法.拣选等发挥了优化算法的魔力,极大提高了工作效率,为企业争取最大利润.机

【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现

一.需求描述 输入一个字符串,编写程序找出这个字符串中的最长连续字符,并求出其连续出现的次数. 例如,"123444445"中的最长连续字符是4,其连续出现的次数为5:"abcddef"中的最长连续字符是d,其连续出现的次数为2:"ab"中的最长连续字符是a,其连续出现的次数为1.   二.算法设计 我们可以采取逐个比较字符串中各个字符的办法来获取最长连续字符及其连续出现的次数.程序的总体流程如图1所示. 图1 程序的总体流程   三.特殊流程考

专访光庭:传统测绘与众包模式融合,高精地图呼唤新的算法与平台

2012 年,光庭在获得地图测绘资质之后,深感在传统地图行业已经很难撼动对手的地位,光庭就将视线放到了自动驾驶需要的高精地图上. 2013 年,光庭成立自动驾驶技术研发项目组.据武汉光庭科技总经理苏晓聪向雷锋网介绍,研发自动驾驶的目的,是为了弄清楚前者对高精地图有哪些需求,「希望通过开发原型车来驱动高精地图的开发.」 2016 年 4 月,光庭联合武汉大学.武汉理工大学共同研发的「小鱼畅行」自动驾驶项目,也是上述目的的延续,希望继续探索这样的课题:自动驾驶究竟需要什么样的高精度地图.高精地图中究

算法系列(六)最长公共子序列(LCS)问题(连续子序列)的三种解法

最长公共子序列(LCS)问题有两种方式定义子序列,一种是子序列不要求不连续,一种是子序列 必须连续.上一章介绍了用两种算法解决子序列不要求连续的最终公共子序列问题,本章将介绍要求 子序列必须是连续的情况下如何用算法解决最长公共子序列问题. 仍以上一章的两个字符串 "abcdea"和"aebcda"为例,如果子序列不要求连续,其最长公共子序列为"abcda",如果子序列 要求是连续,则其最长公共子序列应为"bcd".在这种情况下

Python最长公共子串算法实例_python

本文实例讲述了Python最长公共子串算法.分享给大家供大家参考.具体如下: #!/usr/bin/env python # find an LCS (Longest Common Subsequence). # *public domain* def find_lcs_len(s1, s2): m = [ [ 0 for x in s2 ] for y in s1 ] for p1 in range(len(s1)): for p2 in range(len(s2)): if s1[p1] =

Ruby实现的最长公共子序列算法_ruby专题

最长公共子序列,LCS,动态规划实现. #encoding: utf-8 #author: xu jin, 4100213 #date: Nov 01, 2012 #Longest-Commom-Subsequence #to find a longest commom subsequence of two given character arrays by using LCS algorithm #example output: #The random character arrays are

如何破解YouTube视频推荐算法?

如何破解YouTube视频推荐算法?     如果你是某个发行渠道(比如电影.戏剧.电视节目.网络视频)的内容工作者,那么内容的成败就取决于发行机制的运转逻辑.比如说,你制作了一档电视节目,你很想它能火起来,那么你就得知道该在哪里切入广告,怎么宣传节目,上哪个频道播放,所选的频道能被多少家庭收看,等等,诸如此类. 如果你的发行渠道是YouTube,那么你最应该搞清楚的是YouTube的算法是怎么工作的(同理可推国内).然而,全天下所有由算法来运营的平台,要搞清楚这一点那不是一般的困难. YouT