再写最长上升子序列(简单dp)

给定一个长度为 

 的数列,求数值严格单调递增的子序列的长度最长是多少。
输入格式
第一行包含整数 


第二行包含 

 个整数,表示完整序列。
输出格式
输出一个整数,表示最大长度。
数据范围
1



1000


10
9







10
9
输入样例:
7
3 1 2 1 8 5 6
输出样例:
4
难度:
简单
时/空限制:
1s / 64MB
总通过数:
100525
总尝试数:
154358
来源:
模板题AcWing
算法标签

#include
using namespace std;
const int N=1e3+10;
int a[N],f[N];
int main ()
{    
int n;    
cin>>n;    
for(int i=1;i<=n;i++)    
{        
cin>>a[i];        
f[i]=1;    
}    
int mx=1;    
for(int i=2;i<=n;i++)    
{        
for(int j=1;j {            
if(a[i]>a[j])            
{                
f[i]=max(f[i],f[j]+1);            
}        
}        
mx=max(mx,f[i]);    
}    
cout< return 0;
}

 

你可能感兴趣的:(算法,c++,数据结构)