LeetCode72编辑距离

题目描述

  

解析

  一般这种给出两个字符串的动态规划问题都是维护一个二维数组,尺寸和这两个字符串的长度相等,用二维做完了后可以尝试优化空间。这一题其实挺类似1143这题的,只不过相比1143的一种方式,变成了三种方式,就要找三个值,在其中取最小的那一个。

复制代码
public static int minDistance(String word1, String word2) {
        char[] w1 = word1.toCharArray();
        char[] w2 = word2.toCharArray();
        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;
        }

        // 填充dp数组
        for (int i = 1; i <= len1; i++) {
            for (int j = 1; j <= len2; j++) {
                int cost = (w1[i - 1] == w2[j - 1]) ? 0 : 1;
                dp[i][j] = Math.min(dp[i - 1][j] + 1, // 删除
                        Math.min(dp[i][j - 1] + 1, // 插入
                                dp[i - 1][j - 1] + cost)); // 替换
            }
        }

        return dp[len1][len2];
    }
相关推荐
啊嘞嘞?7 小时前
力扣(回文链表)
算法·leetcode·链表
Awh-7 小时前
数据结构 第六章:哈希存储
数据结构·算法·哈希算法
M78佐菲7 小时前
Linux学习笔记:目录IO与帧缓冲
linux·笔记·学习·算法
SimonKing7 小时前
AI逆向实战:一个壁纸网站被我5分钟摸透了,你也能
java·后端·程序员
天云数据7 小时前
从“LLM+工具”到Harness 工程:Lilian Weng新文的技术拆解,与一个生产级参考实现
java·前端·网络
玫瑰互动GEO7 小时前
抖音SEO优化技术拆解:搜索排名四大因子与4步落地算法分析
人工智能·算法·搜索引擎·语音识别
让学习成为一种生活方式7 小时前
ASTRAL v5.7.1--生信工具110
java
2501_937860947 小时前
从JDBC到数据访问:Java数据库编程完全指南
java·开发语言·数据库
Interview Aid1127 小时前
Akuna OA 题目拆解|三题思路复盘
linux·运维·算法·面试·职场和发展
JacksonMx7 小时前
Java 服务调用下游接口注意点
java·开发语言