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

代码随想录算法训练营第五十三天|1143. 最长公共子序列、1035.不相交的线、53.最大子数组和

LeetCode 1143. 最长公共子序列
题目链接:1143. 最长公共子序列 - 力扣(LeetCode)

和上一题很像,注意状态转移,相同则+1,否则由前面的最大值转移而来。

代码:

#python
class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:m, n = len(text1), len(text2)dp = [[0] * (n + 1) for _ in range(m + 1)]for i in range(1, m + 1):for j in range(1, n + 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[m][n]# m,n=len(text1),len(text2)# @cache# def dfs(i,j):#     if i<0 or j<0:#         return 0#     if text1[i]==text2[j]:#         return dfs(i-1,j-1)+1#     return max(dfs(i-1,j),dfs(i,j-1))# return dfs(m-1,n-1)

LeetCode 1035. 不相交的线
题目链接:1035. 不相交的线 - 力扣(LeetCode)

看起来不一样,实际上多读读题,其实就是同一道题啊。

代码:

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

LeetCode 53.最大子数组和
题目链接:53. 最大子数组和 - 力扣(LeetCode)

要么加上去,要么重新开始,很简单的DP。

代码:

#python
class Solution:def maxSubArray(self, nums: List[int]) -> int:n = len(nums)dp = [0 for _ in range(n)]dp[0] = nums[0]for i in range(1, n):dp[i] = max(nums[i], dp[i - 1] + nums[i])  //要么是重新开始(因为前面的加起来是负数),要么就前面正数和加当前的值。return max(dp)  //注意返回一个最大值

相关文章:

  • 实用高效 无人机光伏巡检系统助力电站可持续发展
  • 【代码随想录刷题】Day18 二叉树05
  • 【开源】基于Vue和SpringBoot的食品生产管理系统
  • 黑马点评Redis笔记
  • word因导入mathtype不能使用复制粘贴(ctrl+c, ctrl+v)快捷键的解决方法
  • oracle数据库巡检常见脚本-系列二
  • 注意力机制(Q,K,V)基本概念
  • Redis当中的BitMap,实现github打卡功能
  • NX二次开发UF_CURVE_create_arc_3tangent 函数介绍
  • 前端入职环境安装
  • Java8实战-总结49
  • AR眼镜双目光波导/主板硬件方案
  • 下载文件并重命名
  • 《微信小程序开发从入门到实战》学习三十二
  • vscode中pylance无法显示outline无法跳转
  • 《深入 React 技术栈》
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Android交互
  • avalon2.2的VM生成过程
  • ComponentOne 2017 V2版本正式发布
  • Effective Java 笔记(一)
  • express.js的介绍及使用
  • Js基础——数据类型之Null和Undefined
  • MYSQL 的 IF 函数
  • Octave 入门
  • react-native 安卓真机环境搭建
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 前端性能优化——回流与重绘
  • 使用Swoole加速Laravel(正式环境中)
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 小而合理的前端理论:rscss和rsjs
  • 2017年360最后一道编程题
  • hi-nginx-1.3.4编译安装
  • ​你们这样子,耽误我的工作进度怎么办?
  • # 数据结构
  • #QT(一种朴素的计算器实现方法)
  • #预处理和函数的对比以及条件编译
  • $(selector).each()和$.each()的区别
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (03)光刻——半导体电路的绘制
  • (2)Java 简介
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • *上位机的定义
  • .Net Core 中间件验签
  • .Net MVC4 上传大文件,并保存表单
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • /dev下添加设备节点的方法步骤(通过device_create)