题意:

求最长增长的子序列的长度。

思路:

利用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)相关推荐

  1. 【暴力】LeetCode 300. Longest Increasing Subsequence

    LeetCode 300. Longest Increasing Subsequence Solution1:我的答案 暴力搜索,时间复杂度O(n2)O(n2)O(n^2) class Solutio ...

  2. leetcode 300. Longest Increasing Subsequence | 300. 最长递增子序列(动态规划)

    题目 https://leetcode.com/problems/longest-increasing-subsequence/ 题解 难得有官方题解的一道题. 参考:https://leetcode ...

  3. 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 ...

  4. 300 Longest Increasing Subsequence 最长上升子序列

    给出一个无序的整形数组,找到最长上升子序列的长度. 例如, 给出 [10, 9, 2, 5, 3, 7, 101, 18], 最长的上升子序列是 [2, 3, 7, 101],因此它的长度是4.因为可 ...

  5. 300 Longest Increasing Subsequence

    https://www.youtube.com/watch?v=CE2b_-XfVDk&t=300s 07/04/2017更新 今天又仔细写了一遍,发现这题昨天还是没想清楚. 昨天我以为, i ...

  6. 300. Longest Increasing Subsequence

    一.题目 1.审题 2.分析 给出一个无序的整形数组,求其中递增的最大序列的元素个数. 二.解答 1.思路 方法一. 采用 dp 数组,长度为 nums 的元素个数. ①.dp[index] 记录当前 ...

  7. leetcode(300)—— Longest Increasing Subsequence(最长递增子序列)

    参考 Python 解法: 动态规划 -- 最长递增子序列(LIS) 原题位置:Longest Increasing Subsequence | LeetCode OJ 题目的说明: 严格递增: 子序 ...

  8. [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  9. HPU第三次积分赛-D:Longest Increasing Subsequence(DP)

    Longest Increasing Subsequence 描述 给出一组长度为n的序列,a1​,a2​,a3​,a4​...an​, 求出这个序列长度为k的严格递增子序列的个数 输入 第一行输入T ...

最新文章

  1. shell 边边角角
  2. PAT天梯赛L3-004 肿瘤诊断
  3. java jmx 配置_Java JMX远程调优一点就通
  4. 经典C/C++面试题
  5. eclipse中monokai插件的安装
  6. word+增加水印+java_为Word2019文档添加水印的两种方法
  7. Netty工作笔记0037---主从Reactor多线程
  8. JZOJ 1039. 【SCOI2009】windy数
  9. Jupyter notebook文件默认存储路径以及更改方法
  10. nsis出错_nsis error解决方法
  11. Android视频桌面,动态桌面开发
  12. 毕设设计要点整理(一)——角色相关
  13. wifi产品调试经验
  14. /proc文件系统详解
  15. 集群渲染和渲染农场是什么意思?跟云渲染有什么关系?
  16. li 字多出了省略号_css实现DIV,LI等元素超出部分文字用省略号…显示
  17. (深入篇)漫游语音识别技术—带你走进语音识别技术的世界
  18. jquery怎么根据id获取元素值
  19. python把excel变成ppt_【转】使用Python转换PDF,Word/Excel/PPT/md/HTML都能转!
  20. GC8833C/DRV8833C 12V双通道H桥电机驱动芯片 DRV8833C国产替代

热门文章

  1. 拿4k的前端开发都会做些什么?
  2. jquery和css的区别是什么?
  3. 快来学习一下吧!Web前端开发CSS居中的五大方式
  4. 谁不想写出干净的代码?7 个技巧,让你的同事爱上你的代码
  5. Java 笔试强训 牛客网选择编程题 01
  6. 超过32位java_在java中存储和使用超过32位的数字!
  7. linux复制文件属性不变例子,linux中文件系统属性chattr权限
  8. python 环境管理工具_python3环境管理器
  9. 学了这么久Java都没搞懂位运算符
  10. (二)ubuntu使用launchpad.net线上编译