当前位置: 首页 > 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;}
};

 

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

 

http://www.xdnf.cn/news/730819.html

相关文章:

  • 酒店管理系统设计与实现
  • 《TCP/IP 详解 卷1:协议》第3章:链路层
  • 第十二篇:MySQL 分布式架构演进与云原生数据库探索
  • 光电学、计算机科学及算法国际会议(OCSA 2025)征稿启事​
  • 深度学习复习笔记
  • leetcode:7. 整数反转(python3解法,数学相关算法题)
  • 【笔记】Suna 部署之 Supabase 数据库 schema 暴露操作
  • day14 leetcode-hot100-26(链表5)
  • QT- QML Layout+anchors 布局+锚点实现窗口部件自适应比例
  • 阻塞队列的学习以及模拟实现一个阻塞队列
  • C++题解(34) 2025年顺德区中小学生程序设计展示活动(初中组C++)U560289 字符串排序(一)和 U560136 字符串排(二)题解
  • JVM——回顾:JVM的起源、特性与系统构成
  • 交错推理强化学习方法提升医疗大语言模型推理能力的深度分析
  • Redis-6.2.9 主从复制配置和详解
  • 65.AI流式回答后再次修改同一界面的消息不在同一对话中bug
  • 深入剖析HBase架构
  • DeviceNET转EtherCAT网关:医院药房自动化的智能升级神经中枢
  • 将材质球中的纹理属性对应的贴图保存至本地
  • 【iptables防火墙】-- URL过滤 (Hexstring、IP、DoT和DoH)
  • 用wireshark抓了个TCP通讯的包
  • 讲述我的plc自学之路 第十一章
  • 一套qt c++的串口通信
  • 新版Chrome浏览器WEB端加载DWG TrueView查看DWG、dxf工程图纸
  • CentOS 7 环境下部署 LAMP
  • RabbitMQ和MQTT区别与应用
  • MSVC支持但是Clang会报错的C++行为
  • 在 ODROID-H3+ 上安装 Win11 系统
  • Python图片格式批量转换器教程
  • 【仿生机器人】仿生机器人系统架构设计2.0——具备可执行性
  • MySQL事务及其原理