LeetCode-072-编辑距离
LeetCode-072-编辑距离
思路
动态规划
1、状态定义:
dp[i][j]表示word1的前i个字母转换成word2的前j个字母所使用的最少操作。
2、状态转移:
i指向word1,j指向word2
首先了解三种操作的状态转移:
增:i+1和j相同,那么dp[i][j]=dp[i][j-1];
删:i-1和j相同,那么dp[i][j]=dp[i-1][j];
改:i和j相同,那么dp[i][j] = dp[i-1][j-1];
若当前字母相同,则dp[i][j] = dp[i-1][j-1];
否则取增删替三个操作的最小值 + 1, 即:
dp[i][j] = min(dp[i][j-1], dp[i-1][j], dp[i-1][j-1]) + 1。
代码
class Solution {public int minDistance(String word1, String word2) {int len1=word1.length();int len2=word2.length();int [][]dp=new int[len1+1][len2+1];for(int i=0;i<=len1;i++){dp[i][0]=i;}for(int j=0;j<=len2;j++){dp[0][j]=j;}for(int i=1;i<=len1;i++){for(int j=1;j<=len2;j++){if(word1.charAt(i-1)==word2.charAt(j-1)){dp[i][j]=dp[i-1][j-1];}else{dp[i][j]=1+Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1]);}}}return dp[len1][len2];}
}
LeetCode-072-编辑距离相关推荐
- [leetcode] 72. 编辑距离(二维动态规划)
72. 编辑距离 再次验证leetcode的评判机有问题啊!同样的代码,第一次提交超时,第二次提交就通过了! 此题用动态规划解决. 这题一开始还真难到我了,琢磨半天没有思路.于是乎去了网上喵了下题解看 ...
- LeetCode 72. 编辑距离(DP)
1. 题目 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示 ...
- 2022-3-22 Leetcode 72.编辑距离
class Solution {public:int minDistance(string word1, string word2) {int n = word1.length();int m = w ...
- 123. Leetcode 72. 编辑距离 (动态规划- 字符串系列)
步骤一.确定状态: 确定dp数组及下标含义 dp[i][j]表示word1[:i]的单词与word2[:j]单词之间的最小编辑距离 步骤二.推断状态方程: 在确定递推公式的时候,首先要考虑清楚编辑的几 ...
- LeetCode 72.编辑距离(动态规划)
编辑距离 针对两个字符串(如英文字母)的差异程度的量化测量,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串. 编辑距离应用 一.可应用于NLP,如拼写检查可以根据一个拼错的字和其他正 ...
- Java实现 LeetCode 72 编辑距离
72. 编辑距离 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字 ...
- leetcode 72. 编辑距离
/***** 定义状态: DP[i][j]其中i表示word1前i个字符,j表示Word2前i个字符 DP[i][j]表示单词1前i个字符匹配单词2前j个字符,最少变换次数: 状态转移: for i: ...
- [leetcode] 72.编辑距离
给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: ...
- 1.LeetCode字符编辑距离
随便取一个代表类型的题目,其实也就是求从字符串a变形到字符串b,需要多少次操作. 直接上思路: 我们可以按照从后往前遍历的顺序,判断a[i]===b[j]?,如果为真,则i-1,j-1,执行skip操 ...
- LeetCode 72 编辑距离
思路:动态规划 class Solution { public:int minDistance(string word1, string word2) { int dp[501][501]; for( ...
最新文章
- 代码规范性与品质问题~
- js转换html为pdf文件怎么打开方式,pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现...
- 黑客发现了欺骗华尔街的新方法
- android nuwa2,android热更新
- element UI 单选框设置默认选中值
- 响应式网站设计_通过这个免费的四小时课程,掌握响应式网站设计
- 重磅:微信小程序开放公测了!
- Python python 五种数据类型--字符串
- UI设计素材模板|游戏APP界面
- oracle透明网关访问sqlserver_基于智慧照明网关的地下停车场照明解决方案
- Linux 10分钟让你掌握虚拟地址--写时拷贝技术
- C语言之字符串探究(三):字符串库函数操作——strlen、strcat、strcpy、strcmp
- mysql中更新的命令是_MySQL 语言中,更新表数据的命令是( )。_学小易找答案
- IDEA隐藏不需要的文件
- win32汇编实现一个时钟
- springboot毕设项目医疗耗材管理系统833hr(java+VUE+Mybatis+Maven+Mysql)
- python 谷歌翻译 api_调用谷歌翻译API
- 软件工程毕业论文mysql英文翻译_软件工程毕业论文文献翻译中英文对照
- 我的QQ斗地主史及斗地主经验
- fd抓包数据类型_终端抓包神器 | tcpdump参数解析及使用
热门文章
- 搜索引擎优化之手机网址之家(www.mobi123.cn)
- Nexperia | 发布超小尺寸DFN MOSFET
- 推荐一款万能的图片转换器,可以批量转换支持多种格式
- Java实现生产者-消费者模型案例
- 计算机教学辅助平台,教学辅助平台
- APK_android捕鱼达人修改方法(反编译、修改、打包)
- Volumetric Integration(体积渲染——烟雾)
- Oracle SPARC T7-4 服务器:硬件规格
- 支付清算体系介绍(上)
- 安卓7.1系统源码 屏蔽系统home键 (平台msm8909)