Leetcode--72.编辑距离(java)

给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。

你可以对一个单词进行如下三种操作:

插入一个字符
删除一个字符
替换一个字符
 

示例 1:

输入:word1 = "horse", word2 = "ros"
输出:3
解释:
horse -> rorse (将 'h' 替换为 'r')
rorse -> rose (删除 'r')
rose -> ros (删除 'e')
示例 2:

输入:word1 = "intention", word2 = "execution"
输出:5
解释:
intention -> inention (删除 't')
inention -> enention (将 'i' 替换为 'e')
enention -> exention (将 'n' 替换为 'x')
exention -> exection (将 'n' 替换为 'c')
exection -> execution (插入 'u')

思路:动态规划

dp[i][j]表示word1的前i个字符替换为word2的前j个字符需要多少步

如果word1的第i个字符与word2的第j个字符相同

dp[i][j]=dp[i-1][j-1]

否则选择增删改中步骤较小的一步

dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1

代码:

class Solution {

    public int minDistance(String word1, String word2) {

        int m = word1.length();

        int n = word2.length();

        int dp[][] = new int[m+1][n+1];

        for(int i=0;i<=m;i++){

            dp[i][0] = i;

        }

        for(int i=0;i<=n;i++){

            dp[0][i] = i;

        }

        for(int i=1;i<=m;i++){

            for(int j=1;j<=n;j++){

                if(word1.charAt(i-1)==word2.charAt(j-1)){

                    dp[i][j] = dp[i-1][j-1];

                }else{

                    dp[i][j] = Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1;

                }

            }

        }

        return dp[m][n];

    }

}

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

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

相关文章

2021年阿贝尔奖公布!理论计算机科学和离散数学领域学者获奖

来源&#xff1a;前瞻网3月17日&#xff0c;2021年阿贝尔奖揭晓。挪威科学和文学院决定将2021年阿贝尔奖授予来自匈牙利&#xff0c;布达佩斯罗兰大学的Lszl Lovsz 和来自美国&#xff0c;普林斯顿高等研究院的 Avi Wigderson&#xff0c;以表彰两位科学家在理论计算机科学和离…

path环境变量丢失恢复

path环境变量不小心丢失&#xff0c;查询到的恢复方法记录一下 WindowsR键&#xff0c;打开&#xff1a;regedit后点击确定按钮 依次按照这个步骤找到path&#xff0c;鼠标右键修改&#xff0c;复制值到path环境变量中就可以了 转载于:https://www.cnblogs.com/liangcl/p/96797…

【剑指offer】面试题07. 重建二叉树(Java)

输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如&#xff0c;给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a; 3 / \ 9 20 …

GPU深度报告,三大巨头,十四个国内玩家一文看懂【物联网智商精选】

来源: 智东西编辑&#xff1a;智东西内参关于GPU&#xff0c;你想知道的都在这里了。GPU是Graphics Processing Unit&#xff08;图形处理器&#xff09;的简称&#xff0c;它是一种专门在个人电脑、工作站、游戏机和一些移动设备&#xff08;如平板电脑、智能手机等&#xff0…

如何阻止button默认的刷新页面操作

当button在form表单时&#xff0c;点击button会自动触发button的默认事件&#xff0c;也就是刷新当前页面。那么如何阻止呢&#xff1a; 有两种方式&#xff1a; 一&#xff1a;将<button></button>改为<input type"button"> 或者直接在<butto…

MYSQL--一条SQL查询语句是如何执行的?

select * from user where id10 当输入这条查询语句之后会发生什么&#xff1f; MYSQL逻辑架构图 MYSQL大致可以分为两大部分&#xff1a;Server层和存储引擎层 下面来介绍各层中各部分的作用&#xff1a; 连接器&#xff1a; 客户端请求建立连接&#xff0c;在完成TCP连接…

人工智能功能级别与框架|《远望译品》

来源&#xff1a;远望智库预见未来人工智能功能级别与框架本文摘自《人工智能算法、作战环境及未来趋势预判》&#xff5c;《远望译品》1、人工智能功能级别人工智能不仅在知识域中运行&#xff0c;而且在不同级别上与其他理性个体及其问题空间相互作用。人们对人工智能的期望过…

指针和数组替换和区别

指针和数组替换和区别 指针和数组在很多方面都可以替换 为什么不直接用while(*str ! \0)涉及到了Lvalue和Rvalue的问题 // http://www.dotcpp.com/wp/692.html 例如有字符数组char a[100];当a做右值时候&#xff0c;我们可以把它赋给char *类型的指针&#xff0c;用来指向这个…

Leetcode--面试题 01.07. 旋转矩阵(Java)

给你一幅由 N N 矩阵表示的图像&#xff0c;其中每个像素的大小为 4 字节。请你设计一种算法&#xff0c;将图像旋转 90 度。 不占用额外内存空间能否做到&#xff1f; 示例 1: 给定 matrix [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵&#xff0c;使其变为:…

C盘扩展卷是灰色的扩容方法

当想要扩容C盘的时候可能会发现C盘的扩展卷竟然是灰色的。原因是C盘旁边没有紧挨着的“”未分配空间“”&#xff0c; 只要将D盘的空间分出一些来就可以了。 &#xff01;&#xff01;&#xff01;磁盘的分区合并有风险&#xff0c;重要文件等记得先备份 &#xff01;&#xf…

数据与分析领域的十大技术趋势

来源&#xff1a;人工智能与大数据近日&#xff0c;Gartner发布了数据与分析领域的十大技术趋势&#xff0c;为数据和分析领导者的新冠疫情&#xff08;COVID-19&#xff09;响应和恢复工作提供指导&#xff0c;并为疫情后的重启做好准备。数据和分析领导者如果希望在疫情后能持…

到达一个数 Reach a Number

2018-09-24 14:19:58 问题描述&#xff1a; 问题求解&#xff1a; 初看到这个问题&#xff0c;直觉上认为可以通过BFS遍历解空间进行求解&#xff0c;因为本质上来说&#xff0c;这个问题和棋盘上移动马的问题是一类问题&#xff0c;都是可以转化成图的问题&#xff0c;但是MLE…

MYSQL--一条SQL更新语句是如何执行的?

输入一条更新语句&#xff0c;例如&#xff1a;update user set cc1 where ID1 具体执行流程与查询语句类似&#xff0c;详情请点击&#xff1a;https://mp.csdn.net/console/editor/html/105358656 流程走到执行器时&#xff0c;涉及两个重要的日志模块&#xff0c;redo l…

解决AI大难题:如何降低AI运行对能源的消耗?

来源&#xff1a;The Next Web作者&#xff1a;Jeannie Finks编译&#xff1a;科技行者就当下来看&#xff0c;AI领域实现突破性进展的深度学习模型&#xff0c;其规模越大&#xff0c;能耗和成本也随之增加。自然语言处理模型GPT-3就是个典型的例子&#xff0c;为了能够在准确…

STM32F105 PA9/OTG_FS_VBUS Issues

https://www.cnblogs.com/shangdawei/p/3264724.html F105 DFU模式下PA9引脚用来检测USB线缆&#xff0c;若电平在2.7~5v则认为插入usb设备&#xff08;检测到usb线缆条件满足&#xff09;&#xff0c;接下来按流程图执行。 转载于:https://www.cnblogs.com/prayer521/p/970349…

Facebook最新研究:配合AR眼镜使用的腕带,可将神经信号转化为动作

来源&#xff1a;X增强现实日前据外媒报道&#xff0c;Facebook基于其在2019年收购的初创公司的CTRL-Labs技术&#xff0c;计划提供一个新的增强现实界面。在发布的一段演示视频中&#xff0c;其展示了使用肌电信号&#xff08;EMG&#xff09;将细微的神经信号转化为动作的&am…

MYSQL--事务隔离

你在银行存了100元&#xff0c;现在你要把100元转给用户A&#xff0c;银行一查你还有钱&#xff0c;开始给A转钱&#xff0c;这时&#xff0c;转钱给A的操作还未完成&#xff0c;你又把钱转给B&#xff0c;银行一看&#xff0c;你银行账号还有钱&#xff0c;就又给B转钱。那乱套…

数据库原理

一、事务 概念ACIDAUTOCOMMIT二、并发一致性问题 丢失修改读脏数据不可重复读幻影读三、封锁 封锁粒度封锁类型封锁协议MySQL 隐式与显示锁定四、隔离级别 未提交读&#xff08;READ UNCOMMITTED&#xff09;提交读&#xff08;READ COMMITTED&#xff09;可重复读&#xff08;…

Nature封面:人类还在看提词器,AI的辩论能力却出现了重大进展

来源&#xff1a;机器之心编辑&#xff1a;魔王、陈萍人类斗嘴还要看提词器&#xff0c;AI 引经据典的能力却已经比你高出不止一个段位了。在人工智能打败专业国际象棋选手、围棋选手&#xff0c;并在多个电子游戏中大展身手之后&#xff0c;现在它冲着职业辩论选手来了&#x…

MYSQL--浅析索引

索引是为了提高数据查询的效率&#xff0c;类似于书的目录。 索引的常见模型有三种&#xff1a; 1.哈希表&#xff1a; 只适用于等值查询&#xff0c;不适用于范围查询 为什么呢&#xff1f; 哈希表是&#xff08;key&#xff0c;value&#xff09;的格式存储&#xff0c;…