力扣72题编辑距离

news/2025/3/11 10:00:53/

题目

在这里插入图片描述

原理

三个操作对应的操作次数分别是:

  • 插入:在原本的次数上 + 1
  • 删除:在原本的次数上+1
  • 替换:如果两个位置的字符串一样,则等于原本的次数,
    如果不等,在原本的次数上+1

去三者的最小值,就是最小的编辑次数

示例

在这里插入图片描述

在这里插入图片描述

代码

答案是2

package org.example;public class _72_编辑距离 {public static void main(String[] args) {String word1 = "horse";String word2 = "home";System.out.println(minDistance(word1, word2));}private static int minDistance(String word1, String word2) {// 分别获取两个字符串的长度int m = word1.length();int n = word2.length();// 创建一个二维数组dp,dp[i][j]表示word1的前i个字符转换成word2的前j个字符所需要的最少操作次数int[][] dp = new int[m + 1][n + 1];// 初始化dp数组// 初始化第一行for (int i = 0; i <= m; i++) {dp[i][0] = i;}// 初始化第一列for (int j = 0; j <= n; j++) {dp[0][j] = j;}for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {// 获取左\上\左上三个位置的值int left = dp[i - 1][j] + 1;int up = dp[i][j - 1] + 1;int leftUp = dp[i - 1][j - 1]; // 此时不需要+1,默认是相等的情况// 如果word1的第i个字符不等于word2的第j个字符,需要+1if (word1.charAt(i - 1) != word2.charAt(j - 1)) {leftUp++;}// 获取三个位置的最小值dp[i][j] = Math.min(left, Math.min(up, leftUp));}}// 返回word1的前m个字符转换成word2的前n个字符所需要的最少操作次数return dp[m][n];}
}

http://www.ppmy.cn/news/1578314.html

相关文章

自动化App测试Appium(真机测试)准备

提前安装python&#xff0c;pip&#xff0c;pycharm&#xff0c;adb 安装 Appium-Python-Client Appium-Python-Client 是一个 Python 库&#xff0c;它提供了与 Appium 服务器交互的功能。可以通过 pip 来安装这个库。 打开命令提示符或终端&#xff0c;并执行以下命令&…

Type-C 接口如何应对液体腐蚀?

参考自&#xff1a;USB Type-C Cable and Connector Specification V2.4 Type-C 接口腐蚀的原理 平常我们用的 USB Type-C 接口&#xff0c;没连接设备时&#xff0c;里面的源端或双角色端口会把 CC 引脚电压提到 3V - 5.5V。要是这时候接口进了像汗水、自来水这类能导电的液…

自然语言处理:最大期望值算法

介绍 大家好&#xff0c;博主又来给大家分享知识了&#xff0c;今天给大家分享的内容是自然语言处理中的最大期望值算法。那么什么是最大期望值算法呢&#xff1f; 最大期望值算法&#xff0c;英文简称为EM算法&#xff0c;它的核心思想非常巧妙。它把求解模型参数的过程分成…

【数据挖掘】知识蒸馏(Knowledge Distillation, KD)

1. 概念 知识蒸馏&#xff08;Knowledge Distillation, KD&#xff09;是一种模型压缩和知识迁移技术&#xff0c;旨在将大型复杂模型&#xff08;称为教师模型&#xff09;中的知识传递给一个较小的模型&#xff08;称为学生模型&#xff09;&#xff0c;以减少计算成本&…

c# 修改邮件附件名称

在C#中修改邮件附件的名称涉及到使用.NET框架中的邮件发送功能&#xff0c;通常是通过System.Net.Mail命名空间中的MailMessage类来实现的。如果你想在发送邮件之前修改附件的名称&#xff0c;你可以通过Attachment类的构造函数或者在添加附件之后修改Attachment对象的Name属性…

贪心算法解题框架+经典反例分析,效率提升300%

贪心算法是一种在每一步选择中都采取当前状态下的最优决策&#xff0c;从而希望最终达到全局最优解的算法策略。以下从其定义、特点、一般步骤、应用场景及实例等方面进行讲解&#xff1a; 定义与基本思想 • 贪心算法在对问题求解时&#xff0c;总是做出在当前看来是最好的选…

Unity--Cubism Live2D模型使用

了解LIVE2D在unity的使用--前提记录 了解各个组件的作用 Live2D Manuals & Tutorials 这些文件都是重要的控制动画参数的 Cubism Editor是编辑Live2D的工具&#xff0c;而导出的数据的类型&#xff0c;需要满足以上的条件 SDK中包含的Cubism的Importer会自动生成一个Pref…

vim 编写/etc/docker/daemon.json文件时,E212: 无法打开并写入文件

目录 问题描述 解决方法 1、创建/etc/docker目录 2、打开/etc/docker目录 3、创建daemon.json文件 4、vim 编辑daemon.json文件 问题描述 当我们输入代码&#xff1a;vim /etc/docker/daemon.json时&#xff0c;报E212: 无法打开并写入文件错误&#xff0c;如下图 vim /e…