LeetCode 解题思路 48(编辑距离、只出现一次的数字)

解题思路:

  1. dp 数组的含义: 以下标 i - 1为结尾的字符串 word1 和以下标 j - 1 为结尾的字符串 word2 的最近编辑距离为 dp[i][j]。
  2. 递推公式:
java 复制代码
if (word1.charAt(i - 1) == word2.charAt(j - 1)) {
    dp[i][j] = dp[i - 1][j - 1];
} else {
    dp[i][j] = Math.min(Math.min(dp[i][j - 1], dp[i - 1][j]), dp[i - 1][j - 1]) + 1;
}
  1. dp 数组初始化: dp[i][0] = i,dp[0][j] = j。
  2. 遍历顺序: 从小到大逐行遍历,确保左边和上边的 dp 数组有值。
  3. 打印 dp 数组

Java代码:

java 复制代码
class Solution {
    public int minDistance(String word1, String word2) {
        int m = word1.length();
        int n = word2.length();
        int[][] dp = new int[m + 1][n + 1];

        for (int i = 1; i <= m; i++) dp[i][0] = i;
        for (int j = 1; j <= n; j++) dp[0][j] = j;

        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (word1.charAt(i - 1) == word2.charAt(j - 1)) {
                    dp[i][j] = dp[i - 1][j - 1];
                } else {
                    dp[i][j] = Math.min(Math.min(dp[i][j - 1], dp[i - 1][j]), dp[i - 1][j - 1]) + 1;
                }
            }
        }

        return dp[m][n];
    }
}

复杂度分析:

  • 时间复杂度: O(mn)。
  • 空间复杂度: O(mn)。

解题思路:

  1. 异或运算​:
  • 任何数和 0 异或都是它本身:a ^ 0 = a。
  • 相同的两个数异或结果为 0:a ^ a = 0。
  • 异或运算满足交换律和结合律:a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b。

Java代码:

java 复制代码
public class Solution {
    public int singleNumber(int[] nums) {
        int result = 0;
        for (int num : nums)
            result ^= num;

        return result;
    }
}

复杂度分析:

  • 时间复杂度: O(n)。
  • 空间复杂度: O(1)。
相关推荐
二进制的Liao10 分钟前
【编程】脚本编写入门:从零到一的自动化之旅
数据库·python·算法·自动化·bash
自然数e39 分钟前
C++多线程【线程管控】之线程转移以及线程数量和ID
开发语言·c++·算法·多线程
John_ToDebug1 小时前
重建内在秩序:从神经科学理解情绪的逻辑
程序人生·职场和发展
云在Steven1 小时前
在线确定性算法与自适应启发式在虚拟机动态整合中的竞争分析与性能优化
人工智能·算法·性能优化
前进的李工2 小时前
LeetCode hot100:234 回文链表:快慢指针巧判回文链表
python·算法·leetcode·链表·快慢指针·回文链表
sin_hielo2 小时前
leetcode 3228
算法·leetcode
xier_ran3 小时前
力扣(LeetCode)100题:41.缺失的第一个正数
数据结构·算法·leetcode
Swift社区3 小时前
LeetCode 425 - 单词方块
算法·leetcode·职场和发展
weixin_307779134 小时前
软件演示环境动态扩展与成本优化:基于目标跟踪与计划扩展的AWS Auto Scaling策略
算法·云原生·云计算·aws
Carl_奕然4 小时前
【机器视觉】一文掌握常见图像增强算法。
人工智能·opencv·算法·计算机视觉