动态规划_最长递增子序列_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;
    }
};
相关推荐
a8a3022 小时前
Laravel7.x核心特性全解析
java·spring boot·后端
CN-Dust2 小时前
【C++专题】格式化输出与输入
开发语言·c++·算法
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第19题:HashMap的key如何减少发生哈希冲突
java·开发语言·后端·面试·哈希算法·hash-index·hash
Titan20242 小时前
C++位图学习笔记
c++·笔记·学习
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 148. 排序链表 | C++ 归并排序自顶向下
c++·leetcode·链表
coderlin_2 小时前
Langgraph项目三 agent搭建
java·数据库·redis
自我意识的多元宇宙2 小时前
数据结构----插入排序
数据结构·算法·排序算法
im_AMBER2 小时前
Leetcode 162 除了自身以外数组的乘积 | 接雨水
开发语言·javascript·数据结构·算法·leetcode
Westward-sun.2 小时前
YOLO目标检测算法与mAP评估指标详解(附示例)
算法·yolo·目标检测
xyx-3v2 小时前
信号量(二进制/计数)
java·linux·数据库