题意:

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

思路:

利用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();
}
};

最新文章

  1. 为什么你还在用嵌入式的方式来使用mod_wsgi?
  2. 自定义组件之MoreListView
  3. BZOJ3483 : SGU505 Prefixes and suffixes(询问在线版)
  4. 【转载】C++知识库内容精选 尽览所有核心技术点
  5. Codeforces Round #189 (Div. 1) B. Psychos in a Line 单调队列
  6. Asp.net MVC Global.asax文件
  7. centos安装g++
  8. Two Sum-n方优化与C++map的使用
  9. 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果
  10. Mac下一个svn提交.a文件
  11. deibian不能加vpn
  12. Python 字符编码及其文件操作
  13. [matlab] 15.罚函数降维
  14. Appium入门(3)__ Appium Server安装
  15. bootstrap评分插件 Bootstrap Star Rating Examples
  16. pthon自动化之路-编写登录接口
  17. 关于阿里云专有网络搭建FTP服务器的深坑
  18. ionic 项目 随笔
  19. 调用jdbc已经写成的方法----jdbc工具类抽取方式一
  20. html转pdf工具:wkhtmltopdf.exe

热门文章

  1. Ceph OpenSSL
  2. 获取其他进程的命令行(ReadProcessMemory其它进程的PPROCESS_PARAMETERS和PEB结构体)
  3. 《C++ Primer》读书笔记 第三章
  4. 2013年最流行的php框架盘点
  5. vue-cli3.x npm create projectName 报错: Unexpected end of JSON input while parsing near......
  6. gitlab安装笔记三_Centos7安装GitLab
  7. EasyTransaction主要源码分析
  8. 修改npm默认安装路径
  9. java中关于IO流的知识总结(重点介绍文件流的使用)
  10. python爬虫调用谷歌翻译接口