题解 | #递减种子序列#

递减种子序列

https://www.nowcoder.com/practice/708a3a8603274fc7b5732c5e73617203

知识点:

LIS问题,动态规划

分析:

状态表示:

1.f[i]表示以第i个数字结尾的子序列的最长的递减种子序列

2.属性:max,最长

状态计算:

1.分为两个部分

1.1一个部分是,包含seeds[i]这个数字的,那么以这个结尾的最长的递减子序列长度,抛开这个即将要计算的seeds[i]数字来说,其最长长度为f[j]+1,其中j取的是0~i,表示取一个最长的之前计算的最长递减长度,再加1

1.2另一个部分是不包含seeds[i]的,那么就是以上一个包含了seeds[i]的数字结尾的长度,也就是之前计算的f[i]

综上,f[i] = max(f[i],f[j]+1)

编程语言:

C++

完整代码:

    int f[2510];
    int lengthOfLIS(vector<int>& seeds) {
        int res = 0;
        f[0] = 1;
        for(int i = 0;i<seeds.size();i++){
            f[i] = 1;
            for(int j = 0;j<i;j++){
                if(seeds[i] <seeds[j]){
                    f[i] = max(f[i],f[j] + 1);
                }          
            }
            res = max(res,f[i]);
        }
        return res;
    }

全部评论

相关推荐

秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++&nbsp;&amp;&nbsp;Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务