忘记密码
 新成员注册
查看: 1448|回复: 3

[题目]解决最长平台的问题

[复制链接]
我的人缘0
发起活动
0 次
参加活动
0 次
杨德坤 发表于 2007-6-1 12:46 | 显示全部楼层 |阅读模式

你还没有登录,登录后可以看到更多精彩内容

您需要 登录 才可以下载或查看,没有账号?新成员注册

×
已知一个从小到大排序的数组,这个数组中的一个平台(plateau)就是连续的一串值相同的元素,并且这一串元素不能在延伸。
例如:在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)程序的语句越少越好
踩过的脚印
充实自我,展现自我!没有完美的个人,只有优秀的团队!计协我的家,建设靠大家!只有真正的融入了,你才会体会快乐哦~
我的人缘0
发起活动
0 次
参加活动
0 次
 楼主| 杨德坤 发表于 2007-6-1 12:54 | 显示全部楼层
这是我个人的代码:
————————————————————————
#include <iostream>
#include <cstdio>
using namespace std;

//寻找最长的平台函数
void function( const int *Array, int Length );

int main()
{
        //定义平台
        int Plateau[10] = {1,2,2,3,3,3,4,5,5,6};

        function(Plateau, 10);
        return 0;
}


void function( const int* Array, int Length )
{
        //n1:最长的平台
        //n2:当前检测的平台
        //l1:最长的平台的长度
        //l2:当前平台的长度
        int n1 = Array[0], n2 = Array[0], l1 = 0, l2 = 0;
       
        //遍历所有平台
        for( int i = 0; i < Length - 1; i++ )
        {
                if(Array == n2)
                {
                        //检测当前平台的长度
                        l2++;
                        if(l2 > l1)
                        {
                                //更新最长的平台
                                l1 = l2;
                                n1 = n2;
                        }
                }
                else
                {
                        //更换当前平台
                        n2 = Array;
                        l2 = 1;
                }
        }
        //输出最长的平台
        cout << "最长的平台是:";
       
        for( int j = 0; j < l1; j++ )
                cout << n1 << " ";
        cout << endl;
}
充实自我,展现自我!没有完美的个人,只有优秀的团队!计协我的家,建设靠大家!只有真正的融入了,你才会体会快乐哦~
我的人缘0
发起活动
0 次
参加活动
0 次
施沛新 发表于 2019-12-28 07:15 | 显示全部楼层
下次试试            
充实自我,展现自我!没有完美的个人,只有优秀的团队!计协我的家,建设靠大家!只有真正的融入了,你才会体会快乐哦~
您需要登录后才可以回帖 登录 | 新成员注册

本版积分规则

QQ|手机版|CA之家 ( 桂ICP备07006672号-6 )

GMT+8, 2025-9-16 05:55

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表