20240412-算法复习打卡day52||● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

300.最长递增子序列

从前往后遍历即可

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[j] + 1, dp[i]);
            }
            if (dp[i] > result) result = dp[i];
        }
        return result;
    }
};
674. 最长连续递增序列

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;
    }
};
贪心
cpp 复制代码
class Solution {
public:
    int findLengthOfLCIS(vector<int>& nums) {
        if (nums.size() == 0) return 0;
        int result = 1;
        int count = 1;
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] > nums[i - 1]) {
                count++;
            } else {
                count = 1;
            }
            if (count > result) result = count;
        }
        return result;
    }
};
718. 最长重复子数组

nums1和nums2匹配上之后,dp数组状态只能由其左上角推出来

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;
    }
};
相关推荐
小李小李快乐不已6 分钟前
贪心算法理论基础
c++·算法·leetcode·贪心算法
爱喝热水的呀哈喽6 分钟前
子模代数。
算法·编辑器
qq_430855889 分钟前
线代第三章向量第三节:向量间的线性关系二
人工智能·算法·机器学习
AC赳赳老秦10 分钟前
CSV大文件处理全流程:数据清洗、去重与格式标准化深度实践
大数据·开发语言·人工智能·python·算法·机器学习·deepseek
AndrewHZ14 分钟前
【图像处理基石】光线追踪(Ray Tracing)算法入门
图像处理·人工智能·算法·计算机视觉·计算机图形学·光线追踪·渲染技术
橘颂TA19 分钟前
【剑斩OFFER】算法的暴力美学——两数相加
c++·算法·结构与算法
youngee1120 分钟前
hot100-54在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
草莓熊Lotso21 分钟前
《算法闯关指南:递归,搜索与回溯算法--递归》--02. 合并两个有序链表,03. 反转链表
运维·数据结构·算法·链表
XFF不秃头21 分钟前
力扣刷题笔记-和为 K 的子数组
c++·笔记·算法·leetcode
MicroTech202523 分钟前
区块链赋能,联邦协同:微算法科技(NASDAQ: MLGO)打造物联网安全分布式检测新架构
科技·算法·区块链