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

leetcode 300. Longest Increasing Subsequence

目录

题目描述

第一步,明确并理解dp数组及下标的含义 

第二步,分析明确并理解递推公式

第三步,理解dp数组如何初始化

第四步,理解遍历顺序

代码


题目描述

这是动态规划解决子序列问题的例子。

第一步,明确并理解dp数组及下标的含义 

        int n = nums.size();

        //nums[0,i]表示从第0个数一直到第i个数(包含第i个数)的子数组,dp[i]表示子数组nums[0,i]中的最长严格递增子序列的长度。

        vector<int> dp(n,1);//所有的dp[i]都初始化为1,含义是nums[i]这一个数自身一定是一个子序列

第二步,分析明确并理解递推公式

给定i,需要对对所有0<=j<i的nums[j]逐个考察

                if(nums[i] > nums[j]){

                    dp[i] = max(dp[j]+1,dp[i]);

                }

第三步,理解dp数组如何初始化

vector<int> dp(n,1);//所有的dp[i]都初始化为1,含义是nums[i]这一个数自身一定是一个子序列

第四步,理解遍历顺序

i的遍历顺序应该从小到大。起止范围是[0,n-1]。

j的遍历顺序从小到大或者从大到小都可以,起止范围是[0,i-1]。

代码

class Solution {
public:int lengthOfLIS(vector<int>& nums) {int n = nums.size();//nums[0,i]表示从第0个数一直到第i个数(包含第i个数)的子数组,dp[i]表示子数组nums[0,i]中的最长严格递增子序列的长度。vector<int> dp(n,1);//所有的dp[i]都初始化为1,含义是nums[i]这一个数自身一定是一个子序列int maxLen = dp[0];for(int i = 1;i < n;i++){for(int j = 0;j < i;j++){if(nums[i] > nums[j]){dp[i] = max(dp[j]+1,dp[i]);}}if(dp[i] > maxLen)maxLen = dp[i];}return maxLen;}
};
http://www.dtcms.com/a/142601.html

相关文章:

  • C#.net core部署IIS
  • CSS中的`transform-style`属性:3D变换的秘密武器
  • LeetCode 热题 100:回溯
  • sqlilabs-Less之HTTP头部参数的注入——基础篇
  • QML中的3D功能--模型导入与修改
  • QML中的3D功能--入门开发
  • Doris 本地部署集群重启后报错
  • 可发1区的超级创新思路(python 、MATLAB实现):基于多尺度注意力TCN-KAN与小波变换的时间序列预测模型
  • 【信息获取能力】
  • DevOps 进阶指南:如何让工作流更丝滑?
  • 爬虫入门与requests库的使用——python爬虫
  • BMS电池管理芯片BQ76920芯片手册详细解读
  • 不带无线网卡的Linux开发板上网方法
  • 10-DevOps-Jenkins参数化构建实现多版本发布
  • 数据分析与挖掘
  • Python语法系列博客 · 第7期[特殊字符] 列表推导式与字典推导式:更优雅地处理数据结构
  • Flutter学习 滚动组件(2):ListView进阶使用
  • 如何防止接口被刷
  • Elasticsearch只返回指定的字段(用_source)
  • 数据可视化(Matplotlib和pyecharts)
  • 【Leetcode 每日一题】2563. 统计公平数对的数目
  • LeetCode 热题 100_乘积最大子数组(88_152_中等_C++)(动态规划)
  • rpcrt4!COMMON_AddressManager函数分析之和全局变量rpcrt4!AddressList的关系
  • 纯FPGA实现AD9361控制的思路和实现 UART实现AXI_MASTER
  • 《AI大模型应知应会100篇》第26篇:Chain-of-Thought:引导大模型进行步骤推理
  • 常见设计模式
  • Github 2025-04-19Rust开源项目日报 Top10
  • 清华《数据挖掘算法与应用》K-means聚类算法
  • Redis--主从复制
  • 记录一次项目中使用pdf预览过程以及遇到问题以及如何解决