动态规划_最长递增子序列_C++

一.题目解析:

子序列不一定是连续的,但是是严格递增的

算法讲解:

1.状态表示:

dp[i]表示以i位置为结尾,子序列的长度最长

2.状态转移方程

3.初始化

我们单独一个就可以看作是形成一个子序列,所以我们将dp表初始化为1

4.填表顺序

从左向右

5.返回值

返回dp表的最大值

二.代码实现

cpp 复制代码
class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        int n=nums.size();
        vector<int>dp(n,1);//初始化为1,我们单独就可以形成一个子序列
        int ret=1;
        for(int i=1;i<n;i++)
        {
            for(int j=0;j<i;j++)
            {
                if(nums[j]<nums[i]) dp[i]=max(dp[i],dp[j]+1);
                ret=max(dp[i],ret);
            }
        }
        return ret;
    }
};
相关推荐
Boop_wu15 小时前
[Java 算法] 字符串
linux·运维·服务器·数据结构·算法·leetcode
watson_pillow15 小时前
c++ 协程的初步理解
开发语言·c++
庞轩px15 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
故事和你9116 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
Fcy64816 小时前
算法基础详解(三)前缀和与差分算法
算法·前缀和·差分
皮皮林55116 小时前
面试官:ZSet 的底层实现是什么?
java
kvo7f2JTy16 小时前
基于机器学习算法的web入侵检测系统设计与实现
前端·算法·机器学习
码云数智-大飞17 小时前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
2601_9498165817 小时前
Spring+Quartz实现定时任务的配置方法
java
List<String> error_P17 小时前
蓝桥杯最后几天冲刺:暴力大法(一)
算法·职场和发展·蓝桥杯