首页 > 技术文章 > 最长升序字数列

2016024291- 2017-04-07 19:39 原文

1.代码实现

 1 #include<iostream>
 2 using namespace std;
 3 int max(int x,int y)
 4 {
 5     return x>y? x:y;
 6 }
 7 int main()
 8 {
 9     int n,src,a[100],dp[100];
10     while(cin>>n){
11         src=0; 
12         for(int i=0;i<n;i++){
13         cin>>a[i];
14         dp[i]=1;
15         }
16         for(int i=0;i<n;i++){
17             for(int j=0;j<i;j++){
18                 if(a[i]>a[j]){
19                     dp[i]=max(dp[i],dp[j]+1);
20                     //对第a[i]与a[j]比较,dp[i]与dp[j]+1比较,来控制dp[i]的取值    
21                 }
22             }
23             src=max(src,dp[i]);
24             //利用之前的for语句,遍历每个相邻数组,取最大值 
25         }
26         cout<<src<<endl;
27     }
28 }

2.运行结果

7
1 2 4 3 6 5 7
5
8
1 4 6 9 3 5 10 16
6

 

推荐阅读