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

关于动态规划【力扣583.两个字符串的删除操作的思考】

1、目前动态规划的子序列系列的题目之间的区别与联系

【力扣300.最长递增子序列】一个数组,不连续

【力扣674.最长连续递增子序列】一个数组,连续

【力扣718.最长重复子数组】两个数组,连续

【力扣1143.最长公共子序列】两个数组,不连续

【力扣1035.不相交的线】(与1143本质一样)两个数组,不连续

【力扣53.最大子数组和】一个数组,连续

【力扣392.判断子序列】(与1143本质一样)两个数组,不连续

【力扣115.不同的子序列】(与1143本质一样)两个数组,不连续

本题【力扣583.两个字符串的删除操作】(与1143本质一样)两个数组,不连续

2、本题可以有两种方法

方法一:直接法

方法二:间接法(利用最长公共子序列)

3、方法一:直接法

关键区别:递推关系和dp数组初始化

代码续

【递推关系】的理解如下:

// 在写递推关系时要反复回看dp数组本身的含义

// dp[i][j]:以i-1为结尾的word1和以j-1为结尾的word2,所需删除的最少元素数

如果word1[i-1] == word2[j-1],就不需要删除元素,所以dp[i][j] = dp[i-1][j-1];

否则,就要删除元素,dp[i][j]的最小值可以来源于三种情况

// 删除一个word1的元素,所需删除最少元素数的代码表示为dp[i-1][j]+1

// 删除一个word2的元素,所需删除最少元素数的代码表示为dp[i][j-1]+1

// 删除一个word1的元素和一个word2的元素(一共删除了两个元素),所需删除最少元素数的代码表示为dp[i-1][j-1]+2

所以,如果word1[i-1] 不等于 word2[j-1],dp[i][j] = min(min(dp[i-1][j]+1,dp[i][j-1]+1),dp[i-1][j-1]+2);

【dp数组初始化】的理解如下:

4、方法二:间接法(利用最长公共子序列)

本题可以转换题意:得到最长公共子序列,需要删除的元素数是多少

所以在代码上的区别是:返回值

本题【力扣583.两个字符串的删除操作】代码如下图所示

【力扣1143.最长公共子序列】代码如下图所示

http://www.jsqmd.com/news/1150084/

相关文章:

  • IDE 主导时代落幕,智能开发环境(ADE)助力开发者管理多编码智能体
  • Windows Server 2022 IIS 10 FTP 服务器搭建:3步配置安全匿名访问与读写权限
  • ethtool 与 mii-tool 深度对比:3 种场景下的网卡速度查询方案选择
  • FlyOOBE:让旧电脑也能轻松安装Windows 11的智能助手
  • 堡垒机运维Windows Server 2012 R2:远程桌面CAL报错的2种根源与规避策略
  • 操作系统核心态与用户态:从10道经典选择题看CPU特权级切换与系统调用
  • AI生成前端无障碍检查报告:自动化a11y审计完整方案
  • macOS 网络调试:3 款工具对比(Telnet vs nc vs nmap),端口连通性测试选谁?
  • Windows Server 2022 远程桌面服务:3种启用方式对比与安全配置要点
  • Dism++:让Windows系统维护变得简单高效的终极指南
  • Linux 命令行连接 WiFi:3 种主流工具 (iw/nmcli/wpa_supplicant) 场景与性能对比
  • Windows 11 配置 pip 环境变量:解决‘pip不是内部命令’的 2 种路径设置
  • Windows 10/11 代理设置详解:手动/脚本/注册表 3种配置方法与避坑指南
  • Windows CMD tree 命令 3 种高级用法:过滤、输出与 ASCII 模式详解
  • Ubuntu 22.04 虚拟机 SD 卡挂载对比:USB 3.0 读卡器 vs 内置卡槽的 2 种方案实测
  • SecureCRT/Xshell 7 配置 sz/rz:5个关键参数优化与常见传输失败排查
  • Ubuntu Server 多用户SSH配置对比:adduser vs useradd 的5个关键差异与选择
  • Windows 证书文件(.cer/.pfx)双击行为解析:从注册表到cryptext.dll的5个关键函数
  • 【Bug已解决】Claude Code search not finding files / grep returns empty — Claude Code 搜索功能失效解决方案
  • UEFI 2.10 启动流程深度解析:从 SEC 到 RT 的 7 个阶段与 3 个关键数据结构
  • Linux 进程同步实战:共享内存与 POSIX 信号量 3 种典型场景代码对比
  • 银河麒麟V10SP2 vsftpd-3.0.3 多用户权限隔离:3类角色(admin/test1/test2)实战配置
  • ZIP 文件格式解析:从 3 大结构区到全局方式位标记的 2 种加密判断
  • YOLOv8 + LPRNet 车牌识别实战:PyQt5 界面集成与 4 模型性能对比
  • 银河麒麟V10SP2 Swap配置优化:从4GB到64GB内存的3种策略与swappiness调优
  • Chromebook 安装 Linux 双系统指南:保留 ChromeOS 与 4 种驱动问题解决
  • IntelliJ IDEA Markdown插件架构深度解析:PegDown集成与实时预览技术实现
  • 3D BAT v24.3.2 部署实战:Ubuntu 22.04 环境 5 步启动 Web 标注服务
  • ZIP 文件格式解析:3大核心区与伪加密位(09 00)的十六进制实战
  • VirtualBox 7.0 vs VMware 17:5项指标实测Linux虚拟机性能与资源占用