当前位置: 首页 > article >正文

力扣72题编辑距离

题目

在这里插入图片描述

原理

三个操作对应的操作次数分别是:

  • 插入:在原本的次数上 + 1
  • 删除:在原本的次数上+1
  • 替换:如果两个位置的字符串一样,则等于原本的次数,
    如果不等,在原本的次数上+1

去三者的最小值,就是最小的编辑次数

示例

在这里插入图片描述

在这里插入图片描述

代码

答案是2

package org.example;public class _72_编辑距离 {public static void main(String[] args) {String word1 = "horse";String word2 = "home";System.out.println(minDistance(word1, word2));}private static int minDistance(String word1, String word2) {// 分别获取两个字符串的长度int m = word1.length();int n = word2.length();// 创建一个二维数组dp,dp[i][j]表示word1的前i个字符转换成word2的前j个字符所需要的最少操作次数int[][] dp = new int[m + 1][n + 1];// 初始化dp数组// 初始化第一行for (int i = 0; i <= m; i++) {dp[i][0] = i;}// 初始化第一列for (int j = 0; j <= n; j++) {dp[0][j] = j;}for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {// 获取左\上\左上三个位置的值int left = dp[i - 1][j] + 1;int up = dp[i][j - 1] + 1;int leftUp = dp[i - 1][j - 1]; // 此时不需要+1,默认是相等的情况// 如果word1的第i个字符不等于word2的第j个字符,需要+1if (word1.charAt(i - 1) != word2.charAt(j - 1)) {leftUp++;}// 获取三个位置的最小值dp[i][j] = Math.min(left, Math.min(up, leftUp));}}// 返回word1的前m个字符转换成word2的前n个字符所需要的最少操作次数return dp[m][n];}
}

相关文章:

力扣72题编辑距离

题目 原理 三个操作对应的操作次数分别是: 插入:在原本的次数上 1删除:在原本的次数上1替换:如果两个位置的字符串一样,则等于原本的次数, 如果不等,在原本的次数上1 去三者的最小值,就是最小的编辑次数 示例 代码 答案是2 package org.example;public class _72_编辑距离 {pu…...

聊天服务器分布式改造

目前的聊天室是单节点的&#xff0c;无论是http接口还是socket接口都在同一个进程&#xff0c;无法承受太多人同时在线&#xff0c;容灾性也非常差。因此&#xff0c;一个成熟的IM产品一定是做成分布式的&#xff0c;根据功能分模块&#xff0c;每个模块也使用多个节点并行部署…...

Python编程中常见的10个案例

文章目录 1. Hello, World!2. 计算斐波那契数列3. 文件读写4. 列表推导式5. 异常处理6. 函数定义与调用7. 类和对象8. 使用模块9. 网络请求10. 数据可视化总结 1. Hello, World! 这是学习任何编程语言时的第一个程序。 代码示例 print("Hello, World!")2. 计算斐波…...

Ardupilot开源无人机之Geek SDK进展2025Q1

Ardupilot开源无人机之Geek SDK进展2025Q1 1. 源由2. 内容汇总2.1 【jetson-fpv】YOLO INT8 coco8 dataset 精度降级2.2 【OpenIPC-Configurator】OpenIPC Configurator 固件升级失败2.3 【OpenIPC-Adaptive-link】OpenIPC RF信号质量相关显示2.4 【OpenIPC-msposd】.srt/.osd…...

linux上安装redis[从0到1]

redis安装步骤 1.下载redis2.新建redis文件夹3.解压安装Redis4.编译5.修改相关配置6.错误 redis下载官网: https://download.redis.io/releases/ 找到自己需要的版本 1.下载redis 选着自己需要下载的版本后&#xff0c;右击选择复制链接&#xff0c;然后利用命令进行下载&am…...

批量删除 Excel 中的空白行、空白列以及空白表格

我们经常会碰到需要删除 Excel 文档表格中的空白行及空白列的场景&#xff0c;有一些空白行或空白列可能我们人工不好识别&#xff0c;因此删除空白行空白列对我们来讲就非常的繁琐&#xff0c;因为我们需要先识别哪些 Excel 文档中包含空白行或者空白列&#xff0c;我们才能够…...

MyBatis SQL 映射文件的作用和结构

MyBatis SQL 映射文件定义了 SQL 语句以及如何将 SQL 语句的参数和结果映射到 Java 对象。 一、 作用 (Purpose) MyBatis SQL 映射文件&#xff08;通常命名为 XXXMapper.xml&#xff09;的主要作用是&#xff1a; 定义 SQL 语句&#xff1a; 在 XML 映射文件中编写 SQL 语句…...

MYSQL之创建数据库和表

创建数据库db_ck &#xff08;下面的创建是最好的创建方法&#xff0c;如果数据库存在也不会报错&#xff0c;并且指定使用utf8mb4&#xff09; show databases命令可以查看所有的数据库名&#xff0c;可以找到刚刚创建的db_ck数据库 使用该数据库时&#xff0c;发现里面没有…...

react+ts+eslint+prettier 配置教程

1.创建项目 npx create-react-app my-app --template typescript 2.安装依赖 eslint&#xff1a;核心代码质量工具。 prettier&#xff1a;代码格式化工具。 eslint-plugin-prettier&#xff1a;将 Prettier 的规则集成到 ESLint 中。 eslint-config-prettier&#xff1a;…...

ArduPilot开源代码之AP_OSD

ArduPilot开源代码之AP_OSD 1. 源由2. 简介3. 补丁4. 框架设计4.1 启动代码 (AP_OSD::init)4.2 任务代码 (AP_OSD::osd_thread)4.3 实例初始化 (AP_OSD::init_backend) 5. 重要例程5.1 AP_OSD::update_stats5.2 AP_OSD::update_current_screen5.3 AP_OSD::update_osd 6. 总结7.…...

sysbench手动测试OceanBase v4.2.4集群

环境&#xff1a; 1、ocp&#xff08;sysbench节点&#xff09; 192.192.103.128 2、ob集群1-1-1 observer 192.192.103.125、192.192.103.126、192.192.103.127&#xff0c;primary_zone:random haproxy 192.192.103.125、192.192.103.126、192.192.103.127 一、安装sysben…...

腾讯元宝:AI 时代的快速论文阅读助手

1. 背景与需求 在 AI 研究领域&#xff0c;每天都会涌现大量学术论文。如何高效阅读并提取关键信息成为研究者的一大难题。腾讯元宝是腾讯推出的一款大模型&#xff0c;结合了**大语言模型&#xff08;LLM&#xff09;和自然语言处理&#xff08;NLP&#xff09;**技术&#x…...

重构谷粒商城09:人人开源框架的快速入门

谷粒商城09——人人开源框架的快速入门 前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶…...

AAA 技术详解:认证、授权与计费的原理、应用与配置实践

AAA&#xff08;Authentication, Authorization, Accounting&#xff0c;即认证、授权和计费&#xff09;是网络安全的“身份管理员”&#xff0c;负责验证用户身份、分配访问权限并记录行为轨迹。它如同网络世界中的“物业管理系统”&#xff0c;通过三重机制确保接入安全、权…...

OneM2M:全球性的物联网标准-可应用于物联网中

OneM2M 是一个全球性的物联网(IoT)标准,旨在为物联网设备和服务提供统一的框架和接口,以实现设备之间的互操作性、数据共享和服务集成。OneM2M 由多个国际标准化组织(如 ETSI、TIA、TTC、ARIB 等)共同制定,目标是解决物联网领域的碎片化问题,提供一个通用的标准,支持跨…...

redis数据迁移教程(使用RedisShake实现不停机迁移十分便捷)

1.我的场景 需要把本地的redis数据上传到阿里云服务器上面,服务器上redis并没有开aof持久化,但是将rdb文件上传至服务器后每次重启redis,rdb文件会被覆盖导致无法同同步数据,最终决定使用RedisShake 2.RedisShake介绍 什么是 RedisShake​ RedisShake 是一个用于处理和迁移…...

Linux基本操作指令3

1、wget: 这是一个用于从网络上下载文件的命令行工具。它支持 HTTP、HTTPS 和 FTP 协议。 wget http://download.qt.io/archive/qt/5.12/5.12.9/qt-opensource-linux-x64-5.12.9.run 2、下载完成后&#xff0c;你可以通过以下命令使文件可执行并运行安装程序&#xff1a; ch…...

2025年2月平价旗舰手机性能对比

1、荣耀Magic7 点评&#xff1a;缺席潜望式长焦&#xff0c;3X直立长焦体验还行。兼顾性能、游戏、屏幕、影像、续航、快充等诸多方面&#xff0c;且外围配置比较齐全。 2、vivo x200 点评&#xff1a;潜望式长焦相机&#xff0c;拍照效果好&#xff0c;30W无线充电着实鸡肋&a…...

Python SQLite3 保姆级教程:从零开始学数据库操作

Python SQLite3 保姆级教程&#xff1a;从零开始学数据库操作 本文适合纯新手&#xff01;无需任何数据库基础&#xff0c;跟着步骤操作即可掌握 SQLite3 的核心用法。 目标&#xff1a;让你像用记事本一样轻松操作数据库&#xff01; 目录 什么是 SQLite3&#xff1f;环境准…...

第七步:简单爬虫与网页测试

Puppeteer 官方文档&#xff1a;https://puppeteer.bootcss.com/ 1、安装 puppeteer是一个node插件安装命令&#xff1a;npm i puppeteer 2、概念 无头浏览器&#xff1a;就是不打开浏览器的页面&#xff0c;直接进行浏览器后台操作 3、入门 引入&#xff1a;import pup…...

4.桥接模式

概况 桥接模式&#xff1a;将抽象部分与实现部分分离&#xff0c;使它们可以独立变化&#xff0c;通过组合而非继承的方式实现解耦。 业务场景 场景描述&#xff1a;开发一个跨平台的图形绘制系统&#xff0c;支持不同形状&#xff08;如圆形、矩形&#xff09;和不同渲染方式…...

Golang学习笔记_44——命令模式

Golang学习笔记_41——观察者模式 Golang学习笔记_42——迭代器模式 Golang学习笔记_43——责任链模式 文章目录 一、核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、特点分析三、适用场景1. 事务管理系统2. 多媒体遥控器3. 操作审计系统 四、Go语言实现示例五、高级应用…...

算法中的背包问题详解:部分背包与0-1背包

1. 背包问题概述 背包问题是组合优化中的经典问题&#xff0c;其核心目标是&#xff1a;在给定容量的背包中装入一组物品&#xff0c;使得物品的总价值最大化。根据物品是否可分割或重复选择&#xff0c;背包问题分为多个变种&#xff0c;其中最常见的两种是&#xff1a; 部分…...

【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据

一、说明 使用STM32F103C8T6最小系统板&#xff0c;让板载SPI1与SPI2通信&#xff0c;通过串口收发数据。本文章说明了在配置与编写时遇到的一些问题&#xff0c;以及详细说明如何使用cubeMAX进行代码编写。 二、CubeMAX配置 1.时钟配置选择外部高速时钟 2.系统模式与时钟配…...

laravel中 添加公共/通用 方法/函数

一&#xff0c;现在app 下面创建Common目录&#xff0c;然后在创建Common.php 文件 二&#xff0c;修改composer.json文件 添加这个到autoload 中 "files": ["app/Common/Common.php"]"autoload": {"psr-4": {"App\\": &quo…...

Jetpack Compose — 入门实践

一、项目中使用 Jetpack Compose 从此节开始,为方便起见,如无特殊说明,Compose 均指代 Jetpack Compose。 开发工具: Android Studio 1.1 创建支持 Compose 新应用 新版 Android Studio 默认创建新项目即为 Compose 项目。 注意:在 Language 下拉菜单中,Kotlin 是唯一可…...

P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 or Set--lower_bound()的解法!!!

P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 题目 并查集解析代码【并查集解】 Set 解法解析lower_bound代码 题目 并查集解析 首先先让所有的f&#xff08;i&#xff09;i&#xff0c;即每个人最开始的祖先都是自己&#xff0c;然后就每一次都让轮到那个数的父亲1&#xff08…...

应用案例 | 精准控制,高效运行—宏集智能控制系统助力SCARA机器人极致性能

概述 随着工业4.0的深入推进&#xff0c;制造业对自动化和智能化的需求日益增长。传统生产线面临空间不足、效率低下、灵活性差等问题&#xff0c;尤其在现有工厂改造项目中&#xff0c;如何在有限空间内实现高效自动化成为一大挑战。 此次项目的客户需要在现有工厂基础上进行…...

Greenplum6.19集群搭建

一&#xff0c;安装说明 1.1环境说明 1、首先确定部署的环境&#xff0c;确定下服务器的端口&#xff0c;一般默认是22的端口&#xff1b; 2、当前这份文档是服务器处于10022端口下部署的&#xff08;现场生产环境要求&#xff0c;22端口在生产环境存在安全隐患&#xff09;&…...

sqlserver中的锁模式 | SQL SERVER如何开启MVCC(使用row-versioning)【启用行版本控制减少锁争用】

文章目录 引言锁和隔离级别的关系锁模式之间兼容性I 隔离级别SQLServer默认的隔离级别为:“read commited” (已提交读)在SQLServer2005引入了基于行版本控制的隔离级别。SQL SERVER如何开启MVCC(使用row-versioning)sqlserver开启MVCC后的锁II sqlserver中的锁模式**1、共享…...