【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 面试必考精华版回顾练习: 重新审视题目,对其进行解题思路分析、算法复杂度分析、代码实现以及结果验证 阅读详情

相关推荐

深入解析Incapsula reese84的生成机制与绕过策略

本文深入解析了Incapsula reese84的生成机制与绕过策略。reese84是一种基于客户端JavaScript挑战的Web安全防护,通过动态算法收集浏览器指纹并生成令牌Cookie。文章详细拆解了其两步验证流程,并提供了使用无头浏览器、逆向JS模拟请求以及Token维护等实战绕过方法,帮助开发者和安全研究人员应对自动化访问拦截。

weixin_29256771的博客 443

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

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

m0_49410492的博客 593

深入浅出:CosineLRScheduler 调度器的原理与实战应用

本文深入解析了CosineLRScheduler调度器的核心原理与实战应用,详细介绍了余弦退火算法及其在深度学习模型训练中的优势。通过参数配置建议、PyTorch实现示例和常见问题解决方案,帮助开发者高效应用该调度器提升模型性能,特别适用于计算机视觉和自然语言处理任务。

sss66的博客 859

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

用UltraISO制作镜像以RAW格式刻录系统到U盘后,在Windows上无法识别的解决办法

在这篇文章中,用UltraISO制作镜像后,会使得U盘无法识别!!!那么,如何抹掉U盘的数据,格式化U盘呢?

拥抱具身智能,昇腾Ascend C 2730

【vLLM-性能洞察】基于Ascend Profiler的端到端推理瓶颈定位与优化实践

本文详细介绍了如何利用Ascend Profiler对vLLM-Ascend大模型推理服务进行端到端的性能瓶颈定位与优化。通过实战案例,阐述了从数据采集、可视化分析到诊断低效算子、内存管理、计算通信重叠及框架调度等常见瓶颈的全过程,为基于昇腾NPU的AI推理性能调优提供了系统性的方法论和实用工具指南。

cc789的博客 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

【Python】解决 ERROR: Exception:Traceback (most recent call last):(亲测有效)

1、遇到问题2、问题解决

Fanjufei的博客 1万+

100 编辑距离(Edit Distance)

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

SeeDoubleU的专栏 560

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

Python爬虫实战 | 拼多多商品评论采集与深度分析

本文从 API 调用、网页渲染到情感分析与关键词提取,全流程剖析了“拼多多商品评论采集与分析”项目。Scrapy + API 可快速抓取评论;Playwright 可突破 API 限制,抓取完整页面内容;数据清洗 + 分析揭示用户真实反馈;可持续部署、扩展至更多商品 & 时间段;

2201_76125261的博客 1696

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

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

m0_56164356的博客 2627

Allegro172版本DFM功能介绍

Allegro172版本提供了实时DFM检查的功能,让违反要求的地方实时以DRC的形式报出来,让加工不可加工因素在设计的时候同步避免。打开Constraint,选择Manufacturing, 所有DFM相关DRC都在这。把所有下面DRC开关(DFM,DFA,DFT)都选择on,选择OK。这个规则和物理和间距规则等等都没有关系,单独的一个加工规则。这些DRC大部分是正常的,正常的可以去修改规则来消除。等待DRC刷新,板子上会出现很多DRC,类似下图。下面介绍如何调用和产生DFM规则。一直往下点击next。

weixin_54787054的博客 1337

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

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

IronmanJay 666

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

weixin_43412762的博客 684

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

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

LIUCHANGSHUO的博客 830

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

每日一题——编辑距离

菜鸡每日一题系列打卡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、付费专栏及课程。

余额充值