算法 day 42

最长递增子序列

这题不难,看一遍就懂了。

cpp 复制代码
class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        if (nums.size() <= 1) return nums.size();
        vector<int> dp(nums.size(), 1);
        int result = 0;
        for (int i = 1; i < nums.size(); i++) {
            for (int j = 0; j < i; j++) {
                if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);
            }
            if (dp[i] > result) result = dp[i]; // 取长的子序列
        }
        return result;
    }
};

最长连续递增序列

一开始想着 这题用双指针或者贪心应该都可以的,也大致思考了一下,明天时间会多一点,会再完善一下这道题的dp,和可能的其他解法。

cpp 复制代码
class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        if (nums.size() == 0) return 0;
        int result = 1;
        vector<int> dp(nums.size() ,1);
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] > nums[i - 1]) { // 连续记录
                dp[i] = dp[i - 1] + 1;
            }
            if (dp[i] > result) result = dp[i];
        }
        return result;
    }
};

最长重复子数组

这题不画图真就难度上升一个档次,画图对于理解的帮助可以说不只是一点点。另外,在视频里提到,关于初始化的问题,和什么时候输出dp的哪一个数字,也就是"答案存储在dp数组的哪里",每个题都需要具体分析。这个和dp初始化数字一样值得考虑和理解,不是一知半解迷迷糊糊就初始0,或者输出二维数组的右下角就完事了。二维数组的右下角,不一定存的是正确答案。

cpp 复制代码
class Solution {
public:
    int findLength(vector<int>& nums1, vector<int>& nums2) {
        vector<vector<int>> dp (nums1.size() + 1, vector<int>(nums2.size() + 1, 0));
        int result = 0;
        for (int i = 1; i <= nums1.size(); i++) {
            for (int j = 1; j <= nums2.size(); j++) {
                if (nums1[i - 1] == nums2[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                }
                if (dp[i][j] > result) result = dp[i][j];
            }
        }
        return result;
    }
};
相关推荐
earthzhang20216 小时前
【2051】【例3.1】偶数
开发语言·数据结构·算法·青少年编程·图论
专注VB编程开发20年6 小时前
.net c#音频放大,音量增益算法防止溢出
算法·c#·音频处理·录音·音量增益·增益控制
唯道行6 小时前
计算机图形学·6 OpenGL编程3 谢尔宾斯基垫与三维编程
人工智能·算法·计算机视觉·计算机图形学·三维·谢尔宾斯基垫
高山上有一只小老虎7 小时前
求最大连续bit数
java·算法
Dylan的码园7 小时前
以二叉树问题为基础的递归调试学习(上)
java·学习·算法·leetcode·r-tree
少许极端7 小时前
算法奇妙屋(九)-栈
java·数据结构·算法·
CoovallyAIHub7 小时前
未来已来:从 CVPR & ICCV 观察 2025→2026 年计算机视觉的七大走向
深度学习·算法·计算机视觉
apcipot_rain7 小时前
CSP集训错题集 第八周 主题:基础图论
算法·图论
天选之女wow7 小时前
【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
算法·图论