当前位置: 首页 > news >正文

动态规划-300.最长递增子序列-力扣(LeetCode)

一、题目解析

 子数组vs子序列

回过头来,我们分析题目给出的条件,其中要注意的是严格递增这个字眼

 

二、算法原理

1、状态表示

我们想要知道的是最长递增子序列长度,所以dp[i]表示:以i位置元素为结尾的所有子序列中最长递增子序列的长度

2、状态转移方程

 

此时我们需要另一个变量j来表示j属于[0,i-1],在这个区间内找出以i位置为结尾的最长子序列

 

3、初始化

对表全部初始化为1,避免判断长度是否大于1 

4、填表顺序

从左往右填表,保证所需值已被填写

5、返回值

由于dp表中记录的是[0,i]位置的最长子序列,所以只需要返回dp表中的最大值即可

来开启今日的编写代码之旅吧,链接:300. 最长递增子序列 - 力扣(LeetCode)

三、代码示例

class Solution {
public:int lengthOfLIS(vector<int>& nums) {int n = nums.size();vector<int> dp(n,1);for(int i = 1;i<n;i++){for(int j = 0;j<=i-1;j++){if(nums[j]<nums[i]){dp[i]=max(dp[i],dp[j]+1);}}}int dp_max = dp[0];for(auto e : dp){if(e>dp_max) dp_max = e;}return dp_max;}
};

 

 看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见!

 

相关文章:

  • (LeetCode 每日一题)2359. 找到离给定两个节点最近的节点( 图)
  • haproxy 搭建web群集
  • Flexbox + Grid 组合布局技术解析
  • 通用的防御框架,用于抵御(多模态)大型语言模型的越狱攻击
  • @Docker Compose 部署 Pushgateway
  • 相机--双目立体相机
  • 卓力达码盘:精密蚀刻技术赋能高精度运动控制
  • Bootstrap项目 - 个人作品与成就展示网站
  • mobile app 工具简要对比
  • UI自动化测试中的元素等待机制解析
  • es6+和css3新增的特性有哪些
  • 如何成为一名优秀的产品经理
  • 权威认证与质量保障:第三方检测在科技成果鉴定测试中的核心作用
  • 缓存穿透、缓存击穿、缓存雪崩目前记录(纯日记)
  • AgenticSeek: 100% 本地替代 Manus AI 的方案
  • 在线政治采购系统架构构建指南
  • React 项目中封装 Excel 导入导出组件:技术分享与实践
  • 24核32G,千兆共享:裸金属服务器的技术原理与优势
  • web前端使用xlsx和file-saver实现前端表格table数据导出Excel功能
  • 完整解析 Linux Kdump Crash Kernel 工作原理和实操步骤
  • 关联网站有那些/外链网盘下载
  • 做外贸有哪些免费的网站有哪些/网络营销推广外包平台
  • 微信公众号登录入口手机版/新媒体seo指的是什么
  • 做铝板的网站/什么是搜索引擎竞价推广
  • 可以用来展示的网站/网站建设高端公司
  • 科技动态/seo视频教程汇总