首页 > 其他分享 >最长递增子序列(动态规划)

最长递增子序列(动态规划)

时间:2025-01-08 20:13:04浏览次数:1  
标签:示例 int 递增 nums 序列 最长 dp

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的

子序列。  

示例 1:

输入:nums = [10,9,2,5,3,7,101,18]
输出:4
解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。

示例 2:

输入:nums = [0,1,0,3,2,3]
输出:4

示例 3:

输入:nums = [7,7,7,7,7,7,7]
输出:1

 

class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        int n = nums.size();
        vector<int> dp(n);//dp[i] 为考虑前 i 个元素,以第 i 个数字结尾的最长上升子序列的长度
        dp[0]=1;
        for(int i=1;i<n;i++){
            //每个元素至少可以单独构成一个长度为1的递增子序列
            dp[i]=1;
            for(int j=0;j<i;j++){
                // 如果当前元素大于之前的某个元素,则可能存在更长的递增子序列
               if(nums[i]>nums[j])   dp[i] = max(dp[i],dp[j]+1);
            }

        }
        return dp[n-1];
    }
};

 

标签:示例,int,递增,nums,序列,最长,dp
From: https://www.cnblogs.com/yueshengd/p/18660440

相关文章

  • 蓝桥杯python省赛备战day2--数组枚举--845数组中的最长山脉-枚举算法刷题学习笔记3--l
    写在前面的话:大家好,我是一名正在努力学习数据结构和算法的新手。这篇文章是我在学习python的各类数据结构以及基础算法过程中的一些笔记和心得,希望能和同样在学习该方面知识的朋友们分享。由于我的知识有限,文章中可能存在错误或不准确的地方,欢迎大家在评论区提出建议和指正。......
  • 基于 GEE 的 MODIS 数据集 NDVI 时间序列动画
    目录1前言2 获取MODISNDVI系列3定义裁剪和区域边界几何4按合成日期将图像分组5减少组合组6制作可视化图像7创建动画GIF8完整代码9运行结果1前言地球观测影像的时间序列动画引人入胜且富有吸引力。在本教程中,您将学习如何生成一个动画GIF,表示跨越1......
  • Informer:超越Transformer的长序列时序预测模型
    Informer:超越Transformer的长序列时序预测模型标题Informer:BeyondEfficientTransformerforLongSequenceTime-SeriesForecasting作者HaoyiZhou,ShanghangZhang,JieqiPeng,ShuaiZhang,JianxinLi,HuiXiong,WancaiZhang期刊来自CCF-A会议(AAAI2021,AAAl......
  • Spark 源码分析(一) SparkRpc中序列化与反序列化Serializer的抽象类解读 (正在更新中~)
    接上一章请先看解读序列化抽象类第一部分目录接上一章请先看解读序列化抽象类第一部分2.Java序列化实现类JavaSerializer(1)JavaSerializationStream类定义了一个java序列化流继承了SerializationStream抽象类代码实际例子1:序列化(2)JavaDeserializationStream......
  • 洛谷题单指南-线段树的进阶用法-P4093 [HEOI2016/TJOI2016] 序列
    原题链接:https://www.luogu.com.cn/problem/P4093题意解读:一个序列,m个变化,求任意一个变化后不受影响的最长上升子序列长度。解题思路:设原序列为a[N],原序列经过变化后能得到的最大值序列为maxa[N],最小值序列为mina[N]设f[i]表示以第i个数结尾的最长不降子序列长度有f[i]=max......
  • 硬编码寻找序列号4
    下断点运行程序,输入8个1假码,点验证.ctrl+f9f8下断点运行程序,edx=1D再次运行,edx=1E再次运行,edx=1F运行,edx=44运行,edx=61运行,edx=51运行,edx=3C运行,edx=5B运行,edx=36运行,edx=55运行所有数值加14,即为真码.这里的最后数值e没出来,手动添加......
  • jacksonjson 反序列化localdatetime指定格式输出
    在使用Jackson进行JSON反序列化时,如果需要将JSON中的日期时间字符串转换为LocalDateTime类型,并指定特定的格式,可以使用@JsonFormat注解。以下是具体的使用方法:1.添加依赖确保你的项目中已经引入了Jackson依赖。如果使用Maven,可以在pom.xml中添加以下依赖:<depe......
  • [题目记录]loj#560 Menci的序列
    loj#560Menci的序列题意给出一个长为\(n\),由+和*组成的序列和常数\(k\).对于一个这样的序列,定义其权值为:初始权值为0,从左到右遍历序列如果当前位是+就把权值\(+1\)如果当前位是*就把权值\(\times2\)对\(2^k\)取模.求原序列的一个子序列,......
  • LLMs在时间序列中的应用:单个股票和统计套利策略
    “LLMsforTimeSeries:anApplicationforSingleStocksandStatisticalArbitrage”论文地址:https://arxiv.org/pdf/2412.09394摘要大型语言模型(LLMs)在时间序列预测任务中展现了强大的能力,颠覆了其不适用于金融市场收益预测的传统观点。通过Chronos架构进行的预......
  • leetcode 热题100(32. 最长有效括号)栈 c++
    链接:32.最长有效括号-力扣(LeetCode)给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例1:输入:s="(()"输出:2解释:最长有效括号子串是"()"示例2:输入:s=")()())"输出:4解释:最长有效括号子串是"()()"示例3:输入:s=""......