当前位置: 首页 > news >正文

Leetcode 刷题笔记1 动态规划part11

leetcode 1143 最长公共子序列

难点在于保持相对顺序

class Solution:
    def longestCommonSubsequence(self, text1: str, text2: str) -> int:
        dp = [[0] * (len(text2) + 1) for i in range(len(text1) + 1)]
        for i in range(1, len(text1) + 1):
            for j in range(1, len(text2) + 1):
                if text1[i - 1] == text2[j - 1]:
                    dp[i][j] = dp[i - 1][j - 1] + 1
                else:
                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
        return dp[-1][-1]

leetcode 1035 不相交的线

同上,求最长公共子序列的变型

class Solution:
    def maxUncrossedLines(self, nums1: List[int], nums2: List[int]) -> int:
        dp = [[0] * (len(nums2) + 1) for _ in range(len(nums1) + 1)]
        for i in range(1, len(nums1) + 1):
            for j in range(1, len(nums2) + 1):
                if nums1[i - 1] == nums2[j - 1]:
                    dp[i][j] = dp[i - 1][j - 1] + 1
                else:
                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
        return dp[-1][-1]

leetcode 53 最大子数组和

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        dp = [float('-inf')] * (len(nums) + 1)
        dp[0] = nums[0]
        for i in range(1, len(nums)):
            dp[i] = max(dp[i - 1] + nums[i], nums[i])
        return max(dp) 

leetcode 392 判断子序列

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        dp = [[0] * (len(t) + 1) for _ in range(len(s) + 1)]
        for i in range(1, len(s) + 1):
            for j in range(1, len(t) + 1):
                if s[i - 1] == t[j - 1]:
                    dp[i][j] = dp[i - 1][j - 1] + 1
                else:
                    dp[i][j] = dp[i][j - 1]
        return dp[-1][-1] == len(s)

相关文章:

  • ICLR2025 | SLMRec: 重新思考大语言模型在推荐系统中的价值
  • Linux系统之less命令的基本使用
  • 【HTML】三、表单与布局标签
  • Linux磁盘与存储管理:从“空间不足”到“存储大亨”
  • C 语言实现彩票模拟:指针与数组的巧妙运用
  • SonarQube安装及结合IDEA使用详细教程(2025适配版)
  • 前端高级CSS用法
  • Blender-MCP服务源码3-插件开发
  • 路局的上道检修过程中,利用AI视觉技术对轨道两旁设备设施进行检修
  • 【2025最新】深度学习框架PyTorch——从入门到精通(1)下载与安装
  • 面试系列|蚂蚁金服技术面【1】
  • 动手学深度学习:CNN和LeNet
  • ctf-web:php反序列化逃逸 -- GHCTF Escape!
  • Linux和RTOS简析
  • vulnhub靶场之stapler靶机
  • HTML+CSS基础(了解水平)
  • 【数据挖掘】KL散度(Kullback-Leibler Divergence, KLD)
  • 使用WireShark解密https流量
  • 剑指 Offer II 084. 含有重复元素集合的全排列
  • Vue中使用到的padStart方法是什么
  • 杭州一季度GDP为5715亿元,同比增长5.2%
  • 美军空袭也门拘留中心,已致68人死亡
  • 春暖花开,为何皮肤却闹起了小情绪?
  • 广州一季度GDP为7532.51亿元,同比增长3%
  • 体坛联播|巴萨“三杀”皇马夺国王杯,陈妤颉破亚洲少年纪录
  • “90后”高层建筑返青春:功能调整的技术路径和运营考验