题解 | #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;
}
全部评论

相关推荐

头像
03-20 22:00
重庆大学 Java
适彼乐土:“他们不行再找你” 最后的底牌吗?有点意思
点赞 评论 收藏
分享
03-24 17:45
门头沟学院 C++
一个头三个大:我也是这样,状态持续了十天然后今天上午流程结束了,应该是横向对比挂了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务