最长上升子序列。百炼2757 2种方法

来源:互联网 发布:stc单片机引脚功能图 编辑:程序博客网 时间:2024/06/05 09:21

很简单的动态规划

////////////////////////////////////////////////////////////////////////////////

第一种所谓的人人为我,第二种我为人人

///////////////////////////////////////////////////////////////////////////////

#include<iostream>

#include<algorithm>
using namespace std;
const int MAXN = 1000;
int a[MAXN];
int result[MAXN];
int main(){
int n;
cin>>n;
for(int i = 1;i <= n;i++)
{ cin >> a[i];
result[i] = 1;
}
for(int i = 2;i <= n;i++)
{
for(int j = 1;j <= i - 1;j++)
if(a[i] > a[j])
result[i] = max(result[j]+1,result[i]);
}
cout << *max_element(result+1,result+1+n) << endl;

}

/////////////////////////////////////////////////////////////////////////////////

#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN = 1000;
int a[MAXN];
int result[MAXN];
int main(){
int n;
cin>>n;
for(int i = 1;i <= n;i++)
{ cin >> a[i];
result[i] = 1;
}
for(int i = 1;i <= n;i++)
{
for(int j =i + 1;j <= n ;j++)
if(a[j] > a[i])
result[j] = max(result[i]+1,result[j]);
}
cout << *max_element(result+1,result+1+n) << endl;
}


0 0
原创粉丝点击