下面是个人理解官方答案和修改的版本,保过测试集。在各位大佬面前班门弄斧了哈。 #include <algorithm> #include <vector> class Solution { public: int LIS(vector<int>& arr) { // write code here if(arr.size() < 1){ return 0;}//这里补充一下官方答案的缺陷 if(arr.size() == 1){ return 1;}//这里补充一下官方答案的缺陷 vector<int> laborer(arr.size(), 1);//用于动态维护的数组 int result = 0; //最终要返回的结果,需要维护更新result = max(result, laborer[i]) for(int i = 0; i < arr.size(); i++){ for(int j = 0; j < i; j++){//每次与前方元素比较,时间<n> arr[j] && laborer[j] +1 > laborer[i]){ //前方元素的长度+1后就是当前的长度 laborer[i] = laborer[j] + 1; result = max(result, laborer[i]);//维护 } } } return result; } };</n></int></int></vector></algorithm>
点赞

相关推荐

10-29 16:42
门头沟学院 Java
1.今天什么国标的公司打电话约面试,还得准备ppt,好麻烦,网上查薪资一般,打算拒了,不面了2.字节又复活了,什么安全开发,也不知道怎么样,面一面试试吧,还是挺想去字节的,但好难,随缘吧所以今天没面试
嵌入式的小白:面试前可以好好准备下 1.看看你投递的岗位的岗位描述,分析下是哪个业务线,同使要罗列他们描述中提到的技术点 2.根据1中的两点准备 3.岗位描述中应该还有语言要求,这个刷刷八股,要是对自己语言能力很有把握,那就不用看这点了 4.找下你简历中项目部分,看有没有和岗位描述中技术点重合的,这种在面试提到项目时,是高概率问题 好好准备,祝你面试顺利
我的求职进度条
点赞 评论 收藏
分享

牛客热帖

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务