力扣72. 编辑距离

动态规划

  • 思路:
    • 假设 dp[i][j] 是 word1 前 i 个字母到 word2 前 j 个字母的编辑距离;
    • 那么状态 dp[i][j] 状态的上一个状态有:
      • dp[i - 1][j],word1 前 i - 1 个字母到 word2 前 j 个字母的编辑距离,此状态再插入一个字母就迁移到 dp[i][j] 状态;
      • 同理在 dp[i][j - 1] 状态 word2 插入一个字母就迁移到 dp[i][j];
      • 状态 dp[i - 1][j - 1],如果 word1 和 word2 最后一个字母相同,则不需要替换;否则,需要进行替换,增加一次编辑;
    • dp[i][j] 是这个上一状态迁移所需距离最小的值;
    • 同时,当一个字母为空串时,需要编辑的距离为另外一个字母的长度:
      • dp[0][j] = j
      • dp[i][0] = i
class Solution {
public:int minDistance(string word1, string word2) {int sz1 = word1.size();int sz2 = word2.size();if (sz1 == 0) {return sz2;}if (sz2 == 0) {return sz1;}std::vector<std::vector<int>> dp(sz1 + 1, std::vector<int>(sz2 + 1));// if word2 emptyfor (int i = 0; i <= sz1; ++i) {dp[i][0] = i;}// if word1 emptyfor (int j = 0; j <= sz2; ++j) {dp[0][j] = j;}for (int i = 1; i <= sz1; ++i) {for (int j = 1; j <= sz2; ++j) {int dp_add = dp[i - 1][j] + 1;int dp_del = dp[i][j - 1] + 1;int dp_re = dp[i - 1][j - 1];if (word1[i - 1] != word2[j - 1]) {dp_re += 1;}dp[i][j] = std::min(std::min(dp_add, dp_del), dp_re);}}return dp[sz1][sz2];}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux性能优化-上下文切换

如何理解上下文切换 Linux 是一个多任务操作系统&#xff0c;它支持远大于 CPU 数量的任务同时运行&#xff0c;这是通过频繁的上下文切换、将CPU轮流分配给不同任务从而实现的。 CPU 上下文切换&#xff0c;就是先把前一个任务的 CPU 上下文&#xff08;CPU 寄存器和程序计数…

JVM学习之JVM概述

JVM的整体结构 Hotspot VM是目前市面上高性能虚拟机代表作之一 它采用解释器与即时编译器并存的架构 在今天&#xff0c;Java程序的运行性能已经达到了可以和C/C程序一较高下的地步 Java代码执行流程 具体图为 JVM架构模型 Java编译器输入的指令流基本上是一种基于 栈的指令…

Transformer的学习

文章目录 Transformer1.了解Seq2Seq任务2.Transformer 整体架构3.Encoder的运作方式4.Decoder的运作方式5.AT 与 NAT6.Encoder 和 Decoder 之间的互动7.Training Transformer 1.了解Seq2Seq任务 NLP 的问题&#xff0c;都可以看做是 QA&#xff08;Question Answering&#x…

只要陪着你——来自歌手朱卫明的音乐与情感的交织

在这个五彩斑斓又纷繁复杂的世界中&#xff0c;情感是我们最珍贵的财富。有一种情感&#xff0c;它不受时间的限制&#xff0c;不受空间的束缚&#xff0c;它能够跨越四季&#xff0c;穿越风雨&#xff0c;那就是陪伴。朱卫明的歌声就是这种陪伴的象征&#xff0c;他用音乐为我…

vue自定义指令及常用的自定义指令封装

vue2 自定义指令 官网链接https://v2.cn.vuejs.org/v2/guide/custom-directive.html 指令注册 这里是一个 Vue2 的指令合集&#xff0c;详细的指令移步下面具体的指令文章&#xff0c;现在我们在这里要介绍如何在项目中统一管理和使用这些指令。 注册指令 单文件引入注册 …

机器学习的12个基础问题

1.阐述批归一化的意义 算法 1&#xff1a;批归一化变换&#xff0c;在一个 mini-batch 上应用于激活 x。 批归一化是一种用于训练神经网络模型的有效方法。这种方法的目标是对特征进行归一化处理&#xff08;使每层网络的输出都经过激活&#xff09;&#xff0c;得到标准差为 …

K8S的安装工具

kubectl Kubernetes 命令行工具 kubectl&#xff0c; 让你可以对 Kubernetes 集群运行命令。 你可以使用 kubectl 来部署应用、监测和管理集群资源以及查看日志。 有关更多信息&#xff0c;包括 kubectl 操作的完整列表&#xff0c;请参见 kubectl参考文件。 kubectl 可安装在…

vue路由传参(query和params两种方式)

vue传参常用的两种传参方式 query方式&#xff1a; 参数拼接在url上刷新页面不会丢失数据但如果传递对象或者数组过大时&#xff0c;会出现url过长导致异常错误的问题参数为对象或者对象组成的数组时&#xff0c;需要使用JSON.stringify()格式化&#xff0c;接收时JSON.parse(…

2. 皇后的控制力

题目描述&#xff1a; 我们对八皇后问题进行扩展。 国际象棋中的皇后非常神勇&#xff0c;一个皇后可以控制横、竖、斜线等4个方向&#xff08;或者说是8个方向&#xff09;&#xff0c;只要有棋子落入她的势力范围&#xff0c;则必死无疑&#xff0c;所以对方的每个棋子都要…

1.4【应用开发】缓冲区(一)

写在前面 缓冲区是存储像素数据的内存区域。多个缓冲区可以与窗口或流相关联,但只有一个缓冲区可以与位图相关联。 一,创建缓冲区 你可以创建内部缓冲区和外部缓冲区,如下: 1.1 内部缓冲区 我们可以通过调用以下Screen API函数来为位图,流,窗口创建内部缓冲区: sc…

O_APPEND影响写入追加,而不影响读文件

O_APPEND 标志用于打开文件时&#xff0c;对写入操作进行追加。它并不直接影响读取文件的操作。 当使用 O_APPEND 标志打开文件时&#xff0c;写入操作会自动将数据追加到文件的末尾&#xff0c;而无论文件指针的位置在哪里。这对于避免并发写入时的竞争条件非常有用&#xff…

腾讯云服务器优惠活动大全页面_全站搜优惠合集

腾讯云推出优惠全站搜页面 https://curl.qcloud.com/PPrF9NFe 在这个页面可以一键查询所需云服务器、轻量应用服务器、数据库、存储、CDN、网络、安全、大数据等云产品优惠活动大全&#xff0c;活动打开如下图&#xff1a; 腾讯云优惠全站搜 腾讯云优惠全站搜页面 txybk.com/go…

java-IO流

File类 引入 【1】文件&#xff0c;目录&#xff1a; 文件&#xff1a; 内存中存放的数据在计算机关机后就会消失。要长久保存数据&#xff0c;就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索&#xff0c;引入了“文件”的概念。一篇文章、一段视频、一个可执…

Element的安装以及基本使用

Element是基于Vue的网站组件库&#xff0c;用于快捷构建网页 像上面这样的样式 官网地址 Element - 网站快速成型工具 安装 npm i element-ui -S 装包命令 npm install babel-plugin-component -D 安装好之后会在package.json里面显示版本 在node_modules中会自动初始化一个 …

opencv中叠加Sobel算子与Laplacian算子实现边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题&#xff0c;也是经典的技术难题之一。如何快速、精确地提取图像边缘信息&#xff0c;一直是国内外的研究热点&#xff0c;同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

记录一次API报文替换点滴

1. 需求 各位盆友在日常开发中&#xff0c;有没有遇到上游接口突然不合作了&#xff0c;临时需要切换其他接口的情况&#xff1f;这不巧了&#xff0c;博主团队近期遇到了&#xff0c;又尴尬又忐忑。 尴尬的是临时通知不合作了&#xff0c;事前没有任何提醒&#xff1b; 忐忑…

C语言:文件操作

文章目录 每日一言文件操作文件的打开和关闭操作&#xff1a;文件的读写操作&#xff1a; 结语 每日一言 If I have seen further, it is by standing on the shoulders of giants. 如果我能看得更远&#xff0c;是因为站在巨人的肩膀上。 文件操作 C语言文件操作主要通过文…

基于SpringBoot和微信小程序的校园快递平台系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot和微信小程序的校园快递平…

AI浅谈:计算机视觉(CV)技术的优势和挑战

目录 一、计算机视觉技术的优势 1.效率和精度提高 2.提高安全性 3.促进自动化 4.促进科学研究 5.促进商业发展 二、计算机视觉技术的挑战 1.环境变化 2.精度问题 3.隐私和安全问题 4.数据质量 5.系统复杂度 以上是对计算机视觉技术的优势和挑战的概述&#xff0c;…