当前位置:网站首页>leetcode300.最长递增子序列(动态规划)
leetcode300.最长递增子序列(动态规划)
2022-08-09 16:49:00 【@爱编程的小杰】

首先,我们来分析一下题目意思,题目给了我们一个数组nums要我们求里面最长递增的子序列的长度,但是递增的数字可以不连续的,且不能改变数组中元素的顺序。
解题思路:
这题如果我们要用动态规划去实现,首先要将该数组拆分成子问题,我拿第一个例题给大家讲一下:
如上图,我们可以先从第一个数字算起,第一个数字它自己其实就可以看成是一个递增的子序列,长度为1,因此我们可以先开一个数组,长度和该数组一样大,并且将里面的数字全部置为1,该数组的每一个下标都对应着目标数组最大递增子序列的长度,全部置为1呢,是因为一开始都还没有算长度,而数字自己本身长度就为1,接下来就是我们要怎么去计算目标数字里面每个数字的最大递增子序列的长度,然后放到存放长度的数组里面。
画图给大家理解:
代码实现:
class Solution {
public:
int lengthOfLIS(vector<int>& nums) {
if(nums.size()==1)
return 1;
int Max=0;
int M=nums.size();
int dp[M];
for(int i=0;i<M;i++)
{
dp[i]=1;
for(int j=0;j<i;j++)
{
if(nums[i]>nums[j])
{
dp[i]=max(dp[i],dp[j]+1);
}
}
if(dp[i]>Max)
Max=dp[i];
}
return Max;
}
};
运行结果如下:
这就是本篇博客的所以内容了,希望对大家有所帮助,感谢大家观看,喜欢的记得点赞关注加收藏哦!
链接如下:https://leetcode.cn/problems/longest-increasing-subsequence/
边栏推荐
猜你喜欢
随机推荐
openEuler Xiong Wei: How do you view the SIG organization model in the open source community?
JMeter notes 6 | JMeter recording agent (configuration)
.NET静态代码织入——肉夹馍(Rougamo) 发布1.1.0
MySQL的索引你了解吗
Functions and Features of Smart Home Control System
WinForm(三)揭开可视化控件的面纱
Ark Standalone/Administrator Special Item Command Codes
ref的使用
.NET Community Toolkit 8.0.0 版本发布
AI基础环境搭建和设置总文
记一次 .NET 某工控自动化控制系统 卡死分析
Lagrange interpolation formula matlab implementation
字符设备的注册
我不写单元测试,被批了
Self-taught software testing, how far can I go out to find a job?
低代码平台和专业开发人员——完美搭档?
ABP 6.0.0-rc.1的新特性
MySQL索引的B+树到底有多高?
期货开户交易所的手续费和查询方法
电子产品硬件开发中存在的问题








![[极客大挑战 2019]HardSQL](/img/99/74cd7c56b3915db371ebc7811f2987.png)
