[leetcode] 300. Longest Increasing Subsequence (Medium)
题意:
求最长增长的子序列的长度。
思路:
利用DP存取以i作为最大点的子序列长度。
Runtime: 20 ms, faster than 35.21% of C++ online submissions for Longest Increasing Subsequence.
class Solution { public:int lengthOfLIS(vector<int> &nums){if (nums.size() == 0)return 0;vector<int> dp(nums.size(), 0);dp[0] = 1;int resNum = 1;for (int i = 1; i < nums.size(); i++){int curmaxNum = 0;for (int j = 0; j < i; j++){if (nums[i] > nums[j])curmaxNum = max(dp[j], curmaxNum);}dp[i] = curmaxNum + 1;resNum = max(dp[i], resNum);}return resNum;} };
解法二:
讨论区里的最优解:
利用一个容器去动态存储一个增长子序列,遍历Nums,对每一个nums[i],在容器中寻找是否有大于等于nums[i]的元素,若存在,则将改值替换为nums[i];
若不存在,则将nums[i]加入该容器,于是容器中的元素永远是 小于 关系的。
0ms.
class Solution { public:int lengthOfLIS(vector<int>& nums) {vector<int> res;for(int i=0; i<nums.size(); i++) {auto it = std::lower_bound(res.begin(), res.end(), nums[i]);if(it==res.end()) res.push_back(nums[i]);else *it = nums[i];}return res.size();} };
转载于:https://www.cnblogs.com/ruoh3kou/p/10037596.html
[leetcode] 300. Longest Increasing Subsequence (Medium)相关推荐
- 【暴力】LeetCode 300. Longest Increasing Subsequence
LeetCode 300. Longest Increasing Subsequence Solution1:我的答案 暴力搜索,时间复杂度O(n2)O(n2)O(n^2) class Solutio ...
- leetcode 300. Longest Increasing Subsequence | 300. 最长递增子序列(动态规划)
题目 https://leetcode.com/problems/longest-increasing-subsequence/ 题解 难得有官方题解的一道题. 参考:https://leetcode ...
- LeetCode 300. Longest Increasing Subsequence--O(n log n)--Java,C++,Python解法
题目地址: Given an unsorted array of integers, find the length of longest increasing subsequence. Exampl ...
- 300 Longest Increasing Subsequence 最长上升子序列
给出一个无序的整形数组,找到最长上升子序列的长度. 例如, 给出 [10, 9, 2, 5, 3, 7, 101, 18], 最长的上升子序列是 [2, 3, 7, 101],因此它的长度是4.因为可 ...
- 300 Longest Increasing Subsequence
https://www.youtube.com/watch?v=CE2b_-XfVDk&t=300s 07/04/2017更新 今天又仔细写了一遍,发现这题昨天还是没想清楚. 昨天我以为, i ...
- 300. Longest Increasing Subsequence
一.题目 1.审题 2.分析 给出一个无序的整形数组,求其中递增的最大序列的元素个数. 二.解答 1.思路 方法一. 采用 dp 数组,长度为 nums 的元素个数. ①.dp[index] 记录当前 ...
- leetcode(300)—— Longest Increasing Subsequence(最长递增子序列)
参考 Python 解法: 动态规划 -- 最长递增子序列(LIS) 原题位置:Longest Increasing Subsequence | LeetCode OJ 题目的说明: 严格递增: 子序 ...
- [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- HPU第三次积分赛-D:Longest Increasing Subsequence(DP)
Longest Increasing Subsequence 描述 给出一组长度为n的序列,a1,a2,a3,a4...an, 求出这个序列长度为k的严格递增子序列的个数 输入 第一行输入T ...
最新文章
- shell 边边角角
- PAT天梯赛L3-004 肿瘤诊断
- java jmx 配置_Java JMX远程调优一点就通
- 经典C/C++面试题
- eclipse中monokai插件的安装
- word+增加水印+java_为Word2019文档添加水印的两种方法
- Netty工作笔记0037---主从Reactor多线程
- JZOJ 1039. 【SCOI2009】windy数
- Jupyter notebook文件默认存储路径以及更改方法
- nsis出错_nsis error解决方法
- Android视频桌面,动态桌面开发
- 毕设设计要点整理(一)——角色相关
- wifi产品调试经验
- /proc文件系统详解
- 集群渲染和渲染农场是什么意思?跟云渲染有什么关系?
- li 字多出了省略号_css实现DIV,LI等元素超出部分文字用省略号…显示
- (深入篇)漫游语音识别技术—带你走进语音识别技术的世界
- jquery怎么根据id获取元素值
- python把excel变成ppt_【转】使用Python转换PDF,Word/Excel/PPT/md/HTML都能转!
- GC8833C/DRV8833C 12V双通道H桥电机驱动芯片 DRV8833C国产替代