【AcWing】899. 编辑距离

article/2025/6/14 16:25:31

文章目录

  • 一、题目
    • 1、原题链接
    • 2、题目描述
  • 二、解题报告
    • 1、思路分析
    • 2、时间复杂度
    • 3、代码详解

一、题目

1、原题链接

902. 最短编辑距离

2、题目描述

在这里插入图片描述

二、解题报告

1、思路分析

思路参考来源y总

  1. dp[i][j]表示将a[1~i]变为b[1~j]中所有方案的操作次数最少的一个;
  2. 按最后一步操作可以将状态分为:
    • 删除一个字符:dp[i-1][j]+1
    • 增加一个字符:dp[i][j-1]+1
    • 替换一个字符:dp[i-1][j-1]+1或两字符串完全相同不需要操作dp[i-1][j-1]
  3. 所以最终的状态转移方程为dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+1,dp[i-1][j-1])

2、时间复杂度

时间复杂度为O(n2)

3、代码详解

#include <iostream>
#include <string>
using namespace std;
const int N = 1010;
string a, b;
int n, m;
int dp[N][N];
int main(){cin >> n >> a >> m >> b;//确保字符串下标从1开始,避免数组越界情况的考虑a = '1' + a;b = '1' + b;//删除i个字符for (int i = 0; i <= n; i++){dp[i][0] = i;}//增加i个字符for (int i = 0; i <= m; i++){dp[0][i] = i;}for (int i = 1; i <=n ; i++){for (int j = 1; j <= m; j++) {dp[i][j] = min(dp[i-1][j] + 1, dp[i][j - 1] + 1);if (a[i] == b[j]) {dp[i][j] = min(dp[i][j], dp[i - 1][j - 1]);}else {dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + 1);}}}cout << dp[n][m];return 0;
}

http://www.hkcw.cn/article/oUuTaLUpfa.shtml

相关文章

Linux基本指令/下

目录 1.echo、cat与printf 2. > 操作符 与 >> 操作符 3. < 操作符 4.消息传送 linux文件深入 5.文件类型 6.mv命令 7.时间相关指令 8.查找命令 9.grep命令 10.zip/unzip/tar命令 11.scp命令 12.bc命令 13.uname 指令 14.快捷键大全 15.关机/重启/睡…

从gitee仓库中恢复IDEA项目某一版本

神奇的功能&#xff01;&#xff01;&#xff01;代码改乱了&#xff0c;但是还有救&#xff01; 打开终端&#xff0c;输入git log 复制想要恢复版本的提交哈希值&#xff0c;打开终端输入git reset --hard <哈希值> &#xff0c;就能修复到那时的提交版本了

排污许可证原始数据(1989-2025.5)

1156 排污许可证原始数据&#xff08;1989-2025.5&#xff09; “污染”年度发文数及主题分布 数据来源 本数据来源于全国排污许可证管理信息平台&#xff0c;由数据皮皮侠团队人工整理&#xff0c;全部内容真实有效。 时间跨度 1989-2025.5 数据范围 省、地级市企业 数…

华为云Flexus+DeepSeek征文|华为云 Flexus X 加速 Dify 平台落地:高性能、低成本、强可靠性的云上选择

目录 前言 1 一键部署 Dify 平台的完整步骤 1.1 选择模板 1.2 参数配置 1.3 资源栈设置 1.4 配置确认与部署 2 Flexus X 服务器的技术优势 2.1 柔性算力随心配 2.2 一直加速一直快 2.3 越用越省降本多 2.4 安全可靠更放心 3 Flexus X 在 Dify 解决方案中的性能体验…

【题解-洛谷】P9422 [蓝桥杯 2023 国 B] 合并数列

题目&#xff1a;P9422 [蓝桥杯 2023 国 B] 合并数列 题目描述 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案&#xff0c;分别将他们列为两个数组 { a 1 , a 2 , ⋯ a n } \{a_1, a_2, \cdots a_n\} {a1​,a2​,⋯an​} 和 { b 1 , …

在Windows本地部署Dify详细操作

Dify官网文档&#xff1a;产品简介 - Dify Docs 1.硬件要求 2.部署方式选择 本次我选择Docker Compose 部署&#xff0c;接下来我将根据官方文档指引&#xff0c;在windows电脑上完成dify本地部署 3.DockerCompose本地部署Dify 3.1 安装WSL2 官方安装WSL2的操作说明入口&…

《彩云追月》音乐会尽展民乐柔美 传统与现代交融

5月30日晚,北京演艺集团旗下北京民族乐团在北京艺术中心上演了民族音乐会《彩云追月》。作为北京演艺集团第十一届“五月演出季”的收官项目,本场音乐会在著名指挥家张冰冰的执棒下,为观众呈现了一场融合传统与现代、柔美与激情的民乐之旅。音乐会以北京民族乐团原创作品《长…

深入理解交叉熵损失函数——全面推演各种形式

带你从不一样的视角综合认识交叉熵损失&#xff0c;阅读这篇文章&#xff0c;帮你建立其分类问题&#xff0c;对比学习&#xff0c;行人重识别&#xff0c;人脸识别等问题的联系&#xff0c;阅读这篇文章相信对你阅读各种底层深度学习论文有帮助。 引言 1. 重新理解全连接层&…

Java 异常

文章目录 异常异常和错误 异常的处理JVM处理异常和自己处理异常finally面试题异常的处理流程 自定义异常类 异常 异常&#xff1a;将程序执行过程中发生的不正常行为&#xff0c;异常也是一个类程序出现异常后将不会继续执行异常的分类&#xff1a;算术异常&#xff0c;空指针…

Postman 发送 SOAP 请求步骤 归档

0.来源 https://apifox.com/apiskills/sending-soap-requests-with-postman/?utm_sourceopr&utm_mediuma2bobzhang&utm_contentpostman 再加上自己一点实践经验 1. 创建一个新的POST请求 postman 创建一个post请求, 请求url 怎么来的可以看第三步 2. post请求设…

matlab/simulink TLC语法基础练习实例

一、基本语法测试方法 1.新建一个脚本&#xff0c;保存扩展名为tlc,本例中是tst.tlc&#xff0c;设置当前工作路径为保存的tlc文件路径&#xff0c;在tlc文件里面输入下面的代码&#xff0c;然后保存&#xff1a; %warning test 2.在MATLAB的命令窗口输入&#xff1a; tlc …

关联子串 - 华为OD统一考试(JavaScript题解)

华为OD机试题库《C》限时优惠 9.9 华为OD机试题库《Python》限时优惠 9.9 华为OD机试题库《JavaScript》限时优惠 9.9 针对刷题难&#xff0c;效率慢&#xff0c;我们提供一对一算法辅导&#xff0c; 针对个人情况定制化的提高计划&#xff08;全称1V1效率更高&#xff09;。 看…

[yolov11改进系列]基于yolov11引入重参数化模块DiverseBranchBlock的python源码+训练源码

【DiverseBranchBlock介绍】 摘要&#xff1a;我们提出一种通用的卷积网络构造块用来在不增加任何推理时间的前提下提升卷积网络的性能。我们将这个块命名为分离分支块&#xff08;Diverse Branch Block&#xff09;。通过结合不同尺寸和复杂度的分离分支&#xff08;包括串联…

Qt SQL模块基础

Qt SQL模块基础 一、Qt SQL模块支持的数据库 官方帮助文档中的Qt支持的数据库驱动如下图&#xff1a; Qt SQL 模块中提供了一些常见的数据库驱动&#xff0c;包括网络型数据库&#xff0c;如Qracle、MS SQL Server、MySQL等&#xff0c;也包括简单的单机型数据库。 Qt SQL支…

鸿蒙仓颉语言开发实战教程:实现商品分类页

今天继续为大家带来仓颉语言开发商城应用的实战教程&#xff0c;今天的内容是实现商品分类页。 分类页面要在基本布局的基础上增加一些动态效果&#xff0c;比如点击状态的切换和两个列表容器的联动。下面为大家详细介绍。 分类列表 先来看左侧的分类列表&#xff0c;很明显是…

笔试模拟 day15

观前提醒&#xff1a; 笔试所有系列文章均是记录本人的笔试题思路与代码&#xff0c;从中得到的启发和从别人题解的学习到的地方&#xff0c;所以关于题目的解答&#xff0c;只是以本人能读懂为目标&#xff0c;如果大家觉得看不懂&#xff0c;那是正常的。如果对本文的某些知…

Linux防止误关机

Linux防止误关机 安装reboot-guard结果验证关机 安装reboot-guard 兼容python2和python3 https://github.com/stephanritscher/reboot-guard # 下载 wget -cP /usr/sbin/ https://raw.githubusercontent.com/stephanritscher/reboot-guard/refs/heads/master/rguard# 赋予可…

tomcat安装二进制版本

1.安装部署tomcat 下载安装包 ​ wget https://repo.huaweicloud.com/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gzwget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.1/bin/apache-tomcat-8.0.1.tar.gz​ 解压安装包&#xff1a; tar -axf jdk-7u80-linux-x64.t…

SAP学习笔记 - 开发15 - 前端Fiori开发 Boostrap,Controls,MVC(Model,View,Controller),Modules

上一章讲了Fiori开发的准备&#xff0c;以及宇宙至简之HelloWorld。 SAP学习笔记 - 开发14 - 前端Fiori开发 HelloWorld-CSDN博客 本章继续学习 Fiori 开发的知识&#xff1a; Bootstrap&#xff0c;Controls&#xff0c;MVC(Model&#xff0c;View&#xff0c;Controller&a…

差分隐私-扰动机制

1. 随机响应机制&#xff08;本地化差分隐私&#xff09; 原理 在本地差分隐私&#xff08;LDP&#xff09;中&#xff0c;每个用户在本地扰动自身数据后再上传&#xff0c;数据收集者无法获知真实值。 核心公式&#xff1a; 对二值数据&#xff08;如回答“是/否”&#xff…