刷leetcode hot100--动态规划3.11

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

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

dp[n]以nums[n]结尾的最长严格递增子序列对应的长度

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

3.递推公式:dp[i] = max(dp[j]+1) 当nums[j]<nums[i](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]

        
    }
};

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

相关推荐
空白到白1 小时前
决策树-面试题
算法·决策树·机器学习
flashlight_hi1 小时前
LeetCode 分类刷题:2563. 统计公平数对的数目
python·算法·leetcode
前端世界1 小时前
HarmonyOS 数据处理性能优化:算法 + 异步 + 分布式实战
算法·性能优化·harmonyos
楼田莉子1 小时前
C++算法专题学习:栈相关的算法
开发语言·c++·算法·leetcode
dragoooon341 小时前
[数据结构——lesson3.单链表]
数据结构·c++·leetcode·学习方法
kyle~2 小时前
排序---冒泡排序(Bubble Sort)
c语言·c++·算法
l1t2 小时前
我改写的二分法XML转CSV文件程序速度追上了张泽鹏先生的
xml·c语言·人工智能·算法·expat
一碗白开水一2 小时前
【论文阅读】Far3D: Expanding the Horizon for Surround-view 3D Object Detection
论文阅读·人工智能·深度学习·算法·目标检测·计算机视觉·3d
轮到我狗叫了2 小时前
力扣.1054距离相等的条形码力扣767.重构字符串力扣47.全排列II力扣980.不同路径III力扣509.斐波那契数列(记忆化搜索)
java·算法·leetcode
久菜盒子工作室2 小时前
量化金融|基于算法和模型的预测研究综述
算法·金融