您的位置:首页 > 其它

最长平台问题

2008-04-30 13:17 477 查看
已知一个已经从小到大排序的数组,这个数组中的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,再1,2,2,3,3,3,,4,5,5,6中1,2.2,3.3.3,4,5.5,6都是平台。试编写一个程序,接收一个数组,把这个数组中最长的平台找出来。在上面的例子中3.3.3就是该数组中最长的平台。

 

 

#include <stdio.h>
int main(void)
{
    int a[10]={1,2,2,3,3,3,4,5,5,6},i=0,j=0,k=0,temp=0,num=1,max=0,zh=0;
    for (i=0;i<=9;i=j)
        for (j=i;j<=9;j++)
        {
            if (a[j]==a[j+1])
            {
                num++;
                temp=j+1;

            }
            else
            {
                num=1;
                temp=0;
            }
            if(max<=num)
            {
                max=num;
                zh=temp;
            }
        
        }
    for(k=1;k<=max;k++)
        printf("%d ",a[zh]);
    
    return 0;
}

 

在VC++6.0环境下编译成功,也可以试试用结构体优化下程序!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  平台 优化