[leetcode] 300. Longest Increasing Subsequence (Medium)
2024-08-29 02:26:29
题意:
求最长增长的子序列的长度。
思路:
利用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() == )
return ;
vector<int> dp(nums.size(), );
dp[] = ;
int resNum = ;
for (int i = ; i < nums.size(); i++)
{
int curmaxNum = ; for (int j = ; j < i; j++)
{
if (nums[i] > nums[j])
curmaxNum = max(dp[j], curmaxNum);
}
dp[i] = curmaxNum + ;
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=; 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();
}
};
最新文章
- 为什么你还在用嵌入式的方式来使用mod_wsgi?
- 自定义组件之MoreListView
- BZOJ3483 : SGU505 Prefixes and suffixes(询问在线版)
- 【转载】C++知识库内容精选 尽览所有核心技术点
- Codeforces Round #189 (Div. 1) B. Psychos in a Line 单调队列
- Asp.net MVC Global.asax文件
- centos安装g++
- Two Sum-n方优化与C++map的使用
- 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果
- Mac下一个svn提交.a文件
- deibian不能加vpn
- Python 字符编码及其文件操作
- [matlab] 15.罚函数降维
- Appium入门(3)__ Appium Server安装
- bootstrap评分插件 Bootstrap Star Rating Examples
- pthon自动化之路-编写登录接口
- 关于阿里云专有网络搭建FTP服务器的深坑
- ionic 项目 随笔
- 调用jdbc已经写成的方法----jdbc工具类抽取方式一
- html转pdf工具:wkhtmltopdf.exe
热门文章
- Ceph OpenSSL
- 获取其他进程的命令行(ReadProcessMemory其它进程的PPROCESS_PARAMETERS和PEB结构体)
- 《C++ Primer》读书笔记 第三章
- 2013年最流行的php框架盘点
- vue-cli3.x npm create projectName 报错: Unexpected end of JSON input while parsing near......
- gitlab安装笔记三_Centos7安装GitLab
- EasyTransaction主要源码分析
- 修改npm默认安装路径
- java中关于IO流的知识总结(重点介绍文件流的使用)
- python爬虫调用谷歌翻译接口