【Leecode】Leecode刷题之路第72天之编辑距离

题目出处

72-编辑距离-题目出处

题目描述

个人解法

思路:

java 复制代码
todo

代码示例:(Java)

java 复制代码
todo

复杂度分析

java 复制代码
todo

官方解法

72-编辑距离-官方解法

想法

编辑距离算法被数据科学家广泛应用,是用作机器翻译和语音识别评价标准的基本算法。

最直观的方法是暴力检查所有可能的编辑方法,取最短的一个。所有可能的编辑方法达到指数级,但我们不需要进行这么多计算,因为我们只需要找到距离最短的序列而不是所有可能的序列。

方法1:动态规划

思路:





代码示例:(Java)

java 复制代码
public class Solution1 {
    public int minDistance(String word1, String word2) {
        int n = word1.length();
        int m = word2.length();

        // 有一个字符串为空串
        if (n * m == 0) {
            return n + m;
        }

        // DP 数组
        int[][] D = new int[n + 1][m + 1];

        // 边界状态初始化
        for (int i = 0; i < n + 1; i++) {
            D[i][0] = i;
        }
        for (int j = 0; j < m + 1; j++) {
            D[0][j] = j;
        }

        // 计算所有 DP 值
        for (int i = 1; i < n + 1; i++) {
            for (int j = 1; j < m + 1; j++) {
                int left = D[i - 1][j] + 1;
                int down = D[i][j - 1] + 1;
                int left_down = D[i - 1][j - 1];
                if (word1.charAt(i - 1) != word2.charAt(j - 1)) {
                    left_down += 1;
                }
                D[i][j] = Math.min(left, Math.min(down, left_down));
            }
        }
        return D[n][m];
    }


}

复杂度分析

  • 时间复杂度 :O(mn),其中 m 为 word1 的长度,n 为 word2 的长度。
  • 空间复杂度 :O(mn),我们需要大小为 O(mn) 的 D 数组来记录状态值。

考察知识点

收获

Gitee源码位置

72-编辑距离-源码

相关推荐
苏瞳儿9 小时前
java对数据库的增删改查
java·数据库·oracle
zhangjw349 小时前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
算法鑫探12 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
yaoxin52112312 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
WBluuue12 小时前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
NotFound48613 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
木子墨51613 小时前
LeetCode 热题 100 精讲 | 并查集篇:最长连续序列 · 岛屿数量 · 省份数量 · 冗余连接 · 等式方程的可满足性
数据结构·c++·算法·leetcode
王老师青少年编程14 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:均分纸牌
c++·算法·编程·贪心·csp·信奥赛·均分纸牌
EQUINOX114 小时前
2026年码蹄杯 本科院校赛道&青少年挑战赛道提高组初赛(省赛)第一场,个人题解
算法
萝卜小白14 小时前
算法实习Day04-MinerU2.5-pro
人工智能·算法·机器学习