zoukankan      html  css  js  c++  java
  • 查找最长有序数列

    查找最长有序数列 

    9

    View Code
     1 /*解题方法
     2      0 1 2 3 4 5 6 7 8
     3 a[i] 1 4 7 2 5 8 3 6 9
     4 c[i] 1 2 3 2 3 4 3 4 5
     5 */
     6 #include<stdio.h>
     7 int main()
     8 {
     9     int a[1000],b[1000],c[1000],i,j,k,n,x,max1,max2;
    10     while(scanf("%d",&n),n!=0)
    11     {
    12         for(i=0;i<n;i++)
    13         {
    14             scanf("%d",&a[i]);
    15         }
    16         b[0]=1;c[0]=1;
    17         for(i=1;i<n;i++)
    18         { k=1;
    19             for(j=0;j<i;j++)
    20             {
    21                 if(a[i]>a[j])
    22                 {
    23                     b[k++]=c[j]+1;//记下比a[i]小的数的最长有序数列加1
    24                 }
    25             }
    26                 max1=b[0];
    27                 for(x=0;x<k;x++)
    28                 {
    29                     if(max1<b[x])//查找最大的最长有序数列
    30                         max1=b[x];
    31                 }
    32                 c[i]=max1;//将最大的最长有序数列赋给c[i]
    33         }
    34         for(i=0;i<n;i++)
    35         {
    36             if(max2<c[i])//找出最长的有序数列
    37                 max2=c[i];
    38         }
    39         printf("%d\n",max2);
    40     }
    41     return 0;
    42 }

    1 4 7 2 5 8 3 6 9

    5

  • 相关阅读:
    ios资源
    学习swift开源项目
    学习di'z地址
    IOS基础库
    IT自学论坛
    HVTableView 分享组
    IOS中的动画菜单
    iOS 通讯录操作
    ios中autolayout
    ios 程序学习
  • 原文地址:https://www.cnblogs.com/zlyblog/p/2575894.html
Copyright © 2011-2022 走看看