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

一.题目解析:

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

算法讲解:

1.状态表示:

dpi表示以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;
    }
};
相关推荐
智慧物业老杨5 小时前
物业日常巡查的数智化重构:从“打卡式巡检“到“闭环式风控“
android·java·人工智能·系统架构·rxjava
晴天的雨.9926 小时前
【C++算法】和为s的两个数
开发语言·数据结构·c++·算法
IvanCodes11 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
步行cgn12 小时前
Spring c 命名空间注入详解
java·后端·spring
明月_清风12 小时前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
aramae12 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
Rain的Java大神之路13 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
荆棘鸟智能13 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
无敌贵点大王13 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
淡海水13 小时前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp