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

代码随想录算法训练营第四十八天| 动态规划10

300.最长递增子序列

今天开始正式子序列系列,本题是比较简单的,感受感受一下子序列题目的思路。

视频讲解:动态规划之子序列问题,元素不连续!| LeetCode:300.最长递增子序列_哔哩哔哩_bilibili

代码随想录

dp[i]表示从开头到以nums[i]结尾中的最长递增子序列长度

因此,比较nums[i]与之前每一个num大小

class Solution:
    def lengthOfLIS(self, nums: List[int]) -> int:
        n=len(nums)
        if n<=1:
            return n
        dp=[1]*n
        result=1
        for i in range(1,n):
            for j in range(i):
                if nums[i]>nums[j]:
                    dp[i]=max(dp[i],dp[j]+1)
            result=max(result,dp[i])
        return result

674. 最长连续递增序列

本题相对于昨天的动态规划:300.最长递增子序列 最大的区别在于“连续”。 先尝试自己做做,感受一下区别

视频讲解:动态规划之子序列问题,重点在于连续!| LeetCode:674.最长连续递增序列_哔哩哔哩_bilibili

代码随想录

思路与上一题一致,在判断的时候是判断i和i-1索引下nums的数值大小

class Solution:
    def findLengthOfLCIS(self, nums: List[int]) -> int:
        n=len(nums)
        if n <=1 :
            return n
        dp=[1]*n
        result=1
        for i in range(1,n):
            if nums[i]>nums[i-1]:
                dp[i]=dp[i-1]+1
            result=max(result,dp[i])
        return result

718. 最长重复子数组

稍有难度,要使用二维dp数组了

视频讲解:动态规划之子序列问题,想清楚DP数组的定义 | LeetCode:718.最长重复子数组_哔哩哔哩_bilibili

代码随想录

dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]

这样不需要单独处理初始化部分

class Solution:
    def findLength(self, nums1: List[int], nums2: List[int]) -> int:
        n1=len(nums1)
        n2=len(nums2)
        dp=[[0]*(n2+1) for _ in range(n1+1)]
        result=0
        for i in range(1,n1+1):
            for j in range(1,n2+1):
                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

相关文章:

  • c#丰田PLC ToyoPuc TCP协议快速读写 to c# Toyota PLC ToyoPuc读写
  • 在大数据项目中如何设计和优化数据模型
  • 力扣-贪心-56 合并区间
  • UIAutomation开发常用方法的参考文档
  • blender bpy渲染禁用日志
  • 尚硅谷爬虫note12
  • 【Electron入门】进程环境和隔离
  • MySQL数据库连接池泄露导致MySQL Server超时关闭连接
  • ESP32学习笔记_Bluetooth(2)——Bluetooth Stack、GAP
  • Node.js 入门 原型链污染
  • Fisher信息矩阵(Fisher Information Matrix, FIM)与自然梯度下降:机器学习中的优化利器
  • PVE虚拟机解除locked(锁定状态)
  • React进阶之前端业务Hooks库(二)
  • 【PDF预览】使用iframe实现pdf文件预览,加盖章
  • mysql 迁移到人大金仓数据库
  • 个性化推荐驱动数字内容体验升级
  • 算法回顾1
  • H5--开发适配
  • TLV解码
  • 多层次自治协作智能网络
  • 设计室内效果图设计/微博关键词排名优化
  • 一品威客网接单平台下载/seo技术网
  • 毕业设计论文网站/成品网站货源1
  • 威海环翠疫情最新消息/seo一般包括哪些内容
  • 网站建设7/seo优化排名技术百度教程
  • 轻量服务器wordpress/南宁seo优化公司