题解 | #Redraiment的走法#
Redraiment的走法
http://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
#include<iostream>
#include<vector>
using namespace std;
int n;
int main()
{
while(cin>>n)
{
vector<int> ti(n);
for(int i= 0;i < n;i++)
{
cin>>ti[i];
}
vector<int> dp(ti.size(),1);
for(int i = 1;i < n;i++)//动态规划常见套路:i定义为最后一个为ti[i]时,能走过的最大长度
{
for(int j = 0;j < i;j++)//记得跟所有i前面的比,因为每一个i前面的都可以跳到i上
{
if(ti[i] > ti[j] && dp[i] < dp[j]+1)
{
dp[i] = dp[j] + 1;
}
}
}
int res = 0;
for(int i = 0;i < ti.size();i++)
{
res = max(res,dp[i]);
}
cout<<res<<endl;}
return 0;
}