leetcode 300. 最长递增子序列

server/2025/1/23 9:19:42/

题目如下
在这里插入图片描述
数据范围
在这里插入图片描述

这道题用暴力的角度来做的话时间复杂度是O(2^n)结合数据范围来看显然会超时。
那么我们可以考虑动态规划:
令dp[i]是以nums[i]为结尾的递增子序列的长度那么dp[i] = max(dp[j] + 1,dp[i])其中0 <= j < i当然要满足nums[i] > nums[j]。
(dp初始值都是1因为每个数字都是长度为1的递增子序列)
如此我们可以写出代码
class Solution {
public:int lengthOfLIS(vector<int>& nums) {int n = nums.size();int max1 = 1;vector<int> dp(n,1);for(int i = 1;i < n;i++) {for(int j = 0;j < i;j++) {if(nums[i] > nums[j]) {dp[i] = max(dp[i],dp[j] + 1);}}max1 = max(max1,dp[i]);}return max1;
}
};

在这里插入图片描述


http://www.ppmy.cn/server/160696.html

相关文章

【算法】贪心

贪心 1.简单贪心1.货仓选址2.最大子段和3.纪念品分组4.排座椅5.矩阵消除游戏 2.推公式1.拼数2.Protecting the Flowers3.奶牛玩杂技 3.哈夫曼编码1.【模板】哈夫曼编码2.字符编码3.合并果子 4.区间问题1.线段覆盖2.Radar Installation3.Sunscreen4.Stall Reservations 1.简单贪…

GDB相比IDE有什么优点

GDB(GNU Debugger)相比于集成开发环境(IDE)具有一些独特的优点,主要体现在其灵活性、可定制性和低级控制能力。具体来说,GDB有以下几个优点: 1. 轻量级且无依赖 GDB是一个命令行工具,不依赖于任何复杂的图形界面或大型库,这使得它非常适合在资源受限的环境中使用,比…

事件委托,其他事件,电梯导航,固定导航

事件委托改造 tab 栏切换 tab栏切换&#xff1a;前边的案例是 for 循环遍历每个 li 注册鼠标进入事件&#xff0c;给添加了 active类的 a 删除掉 active类&#xff0c;然后给点击的 a 添加上 active类&#xff08;也就是将已经有的 active 类删除掉&#xff0c;为当前点击到的…

技术洞察:C++在后端开发中的前沿趋势与社会影响

文章目录 引言C在后端开发中的前沿趋势1. 高性能计算的需求2. 微服务架构的兴起3. 跨平台开发的便利性 跨领域技术融合与创新实践1. C与人工智能的结合2. C与区块链技术的融合 C对社会与人文的影响1. 提升生产力与创新能力2. 促进技术教育与人才培养3. 技术与人文的深度融合 结…

【统计信号处理基础——估计与检测理论】Vol1.Ch2. 最小方差无偏估计

系列目录 【统计信号处理基础——估计与检测理论】Vol1.Ch1. 引言 文章目录 1. 无偏估计量2. 最小方差准则3. 最小方差无偏估计的存在性4. 求最小方差无偏估计量5. 扩展到矢量参数习题2.1 本章寻找未知确定性参数的好的估计量。我们将注意力限制在通过平均产生真值的估计量上&a…

SpringBoot为什么要禁止循环依赖?

大家好&#xff0c;我是锋哥。今天分享关于【SpringBoot为什么要禁止循环依赖?】面试题。希望对大家有帮助&#xff1b; SpringBoot为什么要禁止循环依赖? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 禁止循环依赖的原因与 Spring 框架本身的设计…

低空经济(2)国外发展概述

低空经济国外发展概述 1.概述2.美国3.欧洲4.其他地区 1.概述 世界低空经济起步于农业服务&#xff0c;1920年后公务航空进入市场。二战推动的技术进步使低空经济迅猛发展&#xff0c;1950年直升机进入低空经济市场&#xff0c;开始海上石油服务、山地救援等业务。截至2014年&a…

C++ 模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…