【Java】力扣_每日一题_72.编辑距离_困难

【不看答案挑战,今天你刷题了吗?】LeetCode72,题目+解析+答案 每天一道LeetCode算法题,不看答案挑战!今天你刷题了吗? 阅读详情

题目链接:https://leetcode-cn.com/problems/edit-distance/

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

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

1.插入一个字符
2.删除一个字符
3.替换一个字符

第一次编辑代码:

class Solution {
    public int minDistance(String word1, String word2) {
        char[] w1 = word1.toCharArray();
        char[] w2 = word2.toCharArray();
        int maxOp = w1.length > w2.length ? w1.length : w2.length;
        int maxSeq = 0;
        for(int i = 0; i < w2.length; i++){
            int idx2 = i;
            for(int j = 0; j < w1.length; j++){
                if(w1.length == w2.length){
                    if(w1[j] == w2[idx2] && j == idx2)
                        idx2++;
                }else{
                    if(w1[j] == w2[idx2])
                        idx2++;
                }
                if(idx2 >= w2.length)
                    break;
            }
            maxSeq = (idx2 - i) > maxSeq ? idx2 - i : maxSeq;
        }
        return maxOp - maxSeq;
    }
}

提交结果
368 / 1146 个通过测试用例

反思
该题考察的是动态规划,需要构建状态矩阵,利用状态转移方程求解。

第二次编辑代码:

class Solution {
    public int minDistance(String word1, String word2) {
        int len1 = word1.length();
        int len2 = word2.length();
        int[][] dp = new int[len1+1][len2+2];
        for(int i = 1; i <= len1; i++){
            dp[i][0] = dp[i-1][0] + 1;
        }
        for(int j = 1; j <= len2; j++){
            dp[0][j] = dp[0][j-1] + 1;
        }

        for(int k = 1; k <= len1; k++)
            for(int l = 1; l<= len2; l++){
                if(word1.charAt(k - 1) == word2.charAt(l - 1))
                    dp[k][l] = dp[k - 1][l - 1];
                else
                    dp[k][l] = Math.min(dp[k - 1][l - 1],Math.min(dp[k - 1][l],dp[k][l - 1])) + 1;
            }
        
        return dp[len1][len2];
    }
}
LeetCode 精选 75 回顾 LeetCode 75 面试必考精华版回顾练习: 重新审视题目,对其进行解题思路分析、算法复杂度分析、代码实现以及结果验证 阅读详情

相关推荐

用VFP计算 CRC-16 Modbus 校验位

1. Modbus是一种串行通信协议,最初由Modicon(目前属于施耐德电气公司)于1979年开发2. Modbus协议是应用在Modicon产品上的,后来才被移植到其他产品上3. Modbus协议的通信接口可以有多种选择,如RS232、RS485、以太网等。

lddnzx的博客 518

力扣题库第1题(Java实现)基础版

力扣题库第1题(Java实现)基础版,给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。

m0_49410492的博客 593

行列式详解:从定义到应用

本文系统介绍了行列式的核心概念和应用。首先从二阶、三阶行列式入手,逐步扩展到n阶行列式的定义,讲解了余子式和代数余子式的概念。其次,详细阐述了行列式的重要性质,包括转置不变性、行列交换变号等基本性质以及乘积性质等推论。在计算方法方面,介绍了按行展开法、化上三角矩阵法等实用技巧,并列举了特殊行列式的计算案例。最后重点讨论了行列式在克拉默法则、矩阵可逆性判断、几何体积计算及线性相关性判断等领域的应用。文章强调理解行列式的几何意义和灵活运用性质的重要性,并给出了学习建议和常见误区提示。行列式作为连接代数与几何的桥

aichitang2024的博客 3034

LeetCode-72. 编辑距离

LeetCode-72. 编辑距离 难度:困难 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = “horse”, word2 = “ros” 输出:3 解释: horse -> rorse (将 ‘h’ 替换为 ‘r’) rorse -> rose (删除 ‘r’) rose -> ros (删除 ‘e’) cl

Go_bro的博客 530

RT-Thread学习笔记(5):SPI驱动框架分析

1、两个设备模型 在spi驱框架中,一般会自己初始化一个总线设备(rt_spi_bus),当我们通过挂载后,会相应注册一个从设备(rt_spi_device)。 1、总线设备模型 struct rt_spi_bus { struct rt_device parent; rt_uint8_t mode; const struct rt_spi_ops *ops; struct rt_mutex lock; struct rt_spi_device *owner; };

BLBQ962464的博客 1万+

微信4.1.5.16升级后,你的自动化脚本失灵了?手把手教你用C#让UI树“复活”

微信4.1.5.16版本更新导致自动化脚本失效?本文深入解析微信UI树隐藏的原因,并提供C#实战解决方案,通过UIAutomation技术恢复UI树结构,帮助开发者重新实现自动化操作。涵盖技术原理、代码实现及优化策略,适合RPA开发者和自动化脚本编写者参考。

weixin_30879169的博客 519

数据结构与算法之LeetCode-72-编辑距离

72. 编辑距离 - 力扣(LeetCode) (leetcode-cn.com) /** * @param {string} word1 * @param {string} word2 * @return {number} */ var minDistance = function (word1, word2) { let dp = Array.from(Array(word1.length + 1), () => Array(word2.length + 1).fill(0)

Three_ST的博客 749

集成电路模拟版图入门-版图基础学习笔记(四)

第三部分:版图的准备 2. 设计规则 3) Design Rule 2. 设计规则 4) 规则定义 4.1 NW(N WELL) 2. 设计规则 4) 规则定义 4.1 NW(N WELL) 2. 设计规则 4) 规则定义 4.2 PO(Poly) 2. 设计规则 4) 规则定义 4.3 M1(Metal1) 2. 设计规则 4) 规则定义 4.4 VIA 3. DRC文件 3.1 DRC:Design Rule Check,设计规则检查。 3.2 DRC程序了解有关

weixin_52955333的博客 6730

100 编辑距离(Edit Distance)

lintcode题号——119,难度——medium

SeeDoubleU的专栏 560

layui 监听单元格点击事件,获取当前点击单元格的内容以及 所在的表头内容

特别是后台的一些管理系统中 业务中还是会碰见这样的需求呢 如果你的后台使用layui写的话 在表格中 layui 也给我们提供了监听单元格的事件 但是好像不能直接获取到单元格内容个 和 对应的表头 其实 还是可以解决 换个角度使劲就会发现新的世界 不是吗 event: 'username' 在每个表头中加一个 event 属性 这样就可以监听表头事件 记住个 event 和 当前列的字段最好保持一样 table.render({ e...

业余前端的职业经历 1万+

电化学-论文分享-NanoStat: An open source, fully wireless potentiostat

本文主要分享论文NanoStat: An open source, fully wireless potentiostat,并记录学习笔记。如果有条件,建议看原文最好。

分享技术笔记,希望对大家能够有一定的帮助,同时也通过归纳总结提升自己的个人能力。 2873

【leetcode】Java 力扣第一题(两数之和)简单

废话不多说,直接上干货 Leetcode每日一题 2021/10/18开启,有的人夜里去看海,有的人力扣第一题就做不出来 犹记得那次在刘老师强推下开了力扣的刷题之旅, 用打开力扣APP 第一题,选择简单模式,轻车熟路,啧啧啧 给定一个整数数组nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 这不...

m0_56164356的博客 2627

YOLO26改进策略【卷积层】| CVPR 2024 可变形卷积 v4(DCNv4)无界权重提表达 + 线程合并降冗余,强化模型收敛速度

DCNv4(Deformable Convolution v4)是一种专为广泛视觉应用设计的高效算子,它对DCNv3进行了关键改进,有效解决了DCNv3存在的速度慢和表达能力受限等问题。

Limiiiing的博客 693

【LeetCode每日一题】——72.编辑距离

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符

IronmanJay 666

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

72. 编辑距离——【Leetcode每日一题】

72. 编辑距离 给你两个单词 `word1` 和 `word2`, 请返回将 `word1` 转换成 `word2` 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: - 插入一个字符 - 删除一个字符 - 替换一个字符

weixin_43412762的博客 684

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

每日一题:Leetcode-72 编辑距离

力扣题目解题思路java代码。

LIUCHANGSHUO的博客 830

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

每日一题——编辑距离

菜鸡每日一题系列打卡72天每天一道算法题目小伙伴们一起留言打卡坚持就是胜利,我们一起努力!题目描述(引自LeetCode)给你两个单词word1和word2,请你计算出将word1转换...

W_J_G_的博客 341

每日一题 72编辑距离(LCS)(灵神笔记)

你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。输入:word1 = “intention”, word2 = “execution”inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)输入:word1 = “horse”, word2 = “ros”

fffffall的博客 147

Leetcode hot100 Java刷题(一)

在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。所有当前右端点, 符合条件的子数组 有 min(minI,maxI)−i0个。使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。i0表示 离当前右端点最近 的 不在 [minK,maxK]范围的 位置。上面这个解法不符合要求,用了除法,并且空间复杂度不是O(1)

开心星人的博客 1179

CodeTop一刷

在这里插入代码片return res;return res;return mid;return -1;return mid;return -1;

ResNet156的博客 1028

MinIO 存储池下线(Pool Decommission)全流程操作与源码原理解析

> 技术指南定位:本文基于 `docs/distributed/DECOMMISSION.md`,系统讲解 MinIO 分布式部署中“存储池(Server Pool)下线 / 退役”机制的完整操作链路——包括启动、状态查询、取消、失败恢复、完成后的清理步骤,以及驱动该机制的核心数据结构与后台搬迁逻辑。读完本文,你将能够安全地把旧硬件池上的数据在线迁移至新池,并正确地从启动参数中摘除退役池。 ##

gitblog_00189的博客 389

leetcode热题HOT100汇总——java题解已完结撒花

为了学习本文捋顺leetcode热题HOT100的汇总 方便自己秋招刷题 仅作刷题笔记使用 感兴趣的小伙伴点一个赞吧。

qq_41810415的博客 9403

美团校招技术岗备考指南:算法、Java与分布式系统

算法与数据结构、Java技术栈和分布式系统是互联网大厂技术岗校招的核心考察内容。算法能力作为计算机科学的基石,重点考察动态规划、图论等经典问题的解决思路;Java技术栈则涉及JUC并发、JVM调优及Spring框架原理,这些是构建高并发系统的关键技术;分布式系统领域的一致性协议、服务治理等概念,则是现代微服务架构的必备知识。美团等头部企业尤其注重候选人的工程实践能力,例如通过Redis实现高性能缓存、利用Spring Boot构建微服务等实际场景应用。备考时应采用"基础+专项+冲刺"的三轮复习法,结合Lee

weixin_34318272的博客 346

力扣java刷题学习(代码随想录学习)3

解法同上一题,关键:把石头分成重量近似相等的两堆,这样差值就是最后的结果,等价于两个大石头相撞,留下的小石头,这两个大石头的重量近似相等。sum += i;//初始化dp数组 int [ ] dp = new int [ target + 1 ];i ++) {//采用倒序 for(int j = target;j --) {

weixin_44215785的博客 1479

LeetCode Hot100高频算法题解析与面试实战指南

算法能力是程序员技术面试的核心考察点,其中LeetCode Hot100榜单浓缩了80%以上的大厂真题。通过分析数组、链表、二叉树等数据结构的解题模式,可以掌握双指针、动态规划等通用算法思想。以经典题目两数之和为例,从暴力解法到哈希表优化,展示了时间复杂度从O(n²)到O(n)的演进过程。在技术面试场景中,合理运用滑动窗口、DFS+备忘录等技巧,能有效提升算法题的解决效率。本文结合LeetCode高频考题,详解如何构建算法知识图谱,并制定科学的刷题训练计划。

weixin_34090562的博客 363

东华大学考研复试机试:动态规划、图论与字符串处理实战

动态规划是解决最优化问题的经典算法范式,通过将问题分解为重叠子问题并存储中间结果来实现高效求解。其核心在于状态定义和转移方程的设计,在背包问题、编辑距离等场景有广泛应用。图论算法如Dijkstra和拓扑排序处理节点关系问题,前者解决单源最短路径,后者处理有向无环图的依赖关系。字符串处理领域,KMP算法通过LPS数组实现高效模式匹配,而Manacher算法在线性时间内找到最长回文子串。这些算法在OJ平台编程题和考研复试机试中频繁出现,掌握其原理和实现能显著提升解题效率。本文以东华大学考研复试为背景,通过每日3

weixin_30675247的博客 348
上一篇: 【Java】力扣_每日一题_42.接雨水_困难
下一篇: 【Java】力扣_每日一题_面试题01.07.旋转矩阵_中等
includei
博客等级 码龄9年 406粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值