刷leetcode hot100--动态规划3.11

第一题:最长递增子序列10:53

1.dp数组及下标含义:dpn:nums0...n的最长严格递增子序列长度【无法进行后续比较】

dpn以numsn结尾的最长严格递增子序列对应的长度

2.初始化:注意!!这里应该初始化为1,因为每一个字符单独拎出来这个子序列长度就是1!!!

3.递推公式:dpi = max(dpj+1) 当numsj<numsi(i>j)

4.遍历5.打印数组

注意:: 实际操作时,case:0输出了0,因为maxNum没进循环,所以还是0--->最好对特殊情况if--return提前处理

复制代码
class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        //dp[n]nums[0...n]的最长严格递增子序列长度
        //dp[n]以nums[n]结尾的最长严格递增子序列长度
        //dp[n]=0,
        vector<int> dp(nums.size(),1);//初始化应该是1
        //dp[i] = max(dp[j]+1) 当nums[j]<nums[i]
        if(nums.size()==1){
            return 1;
        }//case:[0]  -->输出0,因为maxNum是0    
        int maxNum = 0;
        for(int i = 1;i<nums.size();i++){
            for(int j = 0;j<i;j++){
                 if(nums[j]<nums[i]){
                    dp[i] = max(dp[j]+1,dp[i]);
                 }
            }
            maxNum = max(maxNum,dp[i]);
        }
        return maxNum;//不应该return dp[nums.size()-1]

        
    }
};

第二题:乘积最大子数组【没思路。。。】

相关推荐
旖旎夜光16 分钟前
LeetCode 238:除自身以外数组的乘积(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
一条大祥脚23 分钟前
26杭电暑期第八场(后半)快读|快写|tarjan|路径DP|mex转化|扫描线|前缀和|二分图
数据结构·算法·tarjan·杭电多校·强联通分量·动态规划dp
奈斯先生Vector26 分钟前
从“能调用”到“可运营”:AI Agent 进入多模型时代后的架构升级
java·javascript·数据库·人工智能·算法·架构·aigc
2601_9561219738 分钟前
Bellman-ford算法
算法
叠层归一研究院44 分钟前
基于区分本源的此刻存在唯一性本体论推演
人工智能·算法
luj_17681 小时前
尾椎藏今生记忆?骨盆对应不确定性
开发语言·网络·c++·经验分享·算法
深圳多奥智能一卡(码、脸)通系统1 小时前
智能梯控SDK可直接用于第三方开发对接的接口文档说明书
服务器·前端·算法
裕晟资质规划10 小时前
武器装备科研生产单位保密资质申请方法论:条件模型与流程拆解
人工智能·算法
en.en..11 小时前
C语言 标准输入 / 输出缓冲区
算法