day 48|● 583. 两个字符串的删除操作 ● 72. 编辑距离
583. 两个字符串的删除操作
dp的含义:指0开头,i- 1和j - 1为结尾的两个序列的删除最小数
递推公式方面:

初始化方面:前面0行和0列的初值要赋好
func minDistance(word1 string, word2 string) int {dp := make([][]int, len(word1) + 1)for i := 0; i < len(dp); i++{dp[i] = make([]int, len(word2) + 1)}for i := 0; i <= len(word1); i++{dp[i][0] = i}for i := 0; i <= len(word2); i++{dp[0][i] =i}for i := 1; i <= len(word1); i++{for j := 1; j <= len(word2); j++{if word1[i - 1] == word2[ j - 1]{dp[i][j] = dp[i - 1][j - 1]}else{dp[i][j] = min(dp[i][j - 1], dp[i-1][j]) + 1dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + 2)}}}return dp[len(word1)][len(word2)]
}
func min(a, b int)int{if a < b{return a}return b
}
72. 编辑距离
其实是与上一个没什么显著的差别。
只是多了一个当不相同时需要判断三个方向,上一个理论上只需要判断两个方向即可,因为上一题的i-1,j-1到i,j需要两步,但是本题只需要一步
func minDistance(word1 string, word2 string) int {dp := make([][]int, len(word1) + 1)for i := 0; i < len(dp); i++{dp[i] = make([]int, len(word2) + 1)}for i := 0; i <= len(word1); i++{dp[i][0] = i}for i := 0; i <= len(word2); i++{dp[0][i] =i}for i := 1; i <= len(word1); i++{for j := 1; j <= len(word2); j++{if word1[i - 1] == word2[ j - 1]{dp[i][j] = dp[i - 1][j - 1]}else{dp[i][j] = min(dp[i][j - 1], dp[i-1][j]) + 1dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + 1)}}}return dp[len(word1)][len(word2)]
}
func min(a, b int)int{if a < b{return a}return b
}
相关文章:
day 48|● 583. 两个字符串的删除操作 ● 72. 编辑距离
583. 两个字符串的删除操作 dp的含义:指0开头,i- 1和j - 1为结尾的两个序列的删除最小数 递推公式方面: 初始化方面:前面0行和0列的初值要赋好 func minDistance(word1 string, word2 string) int {dp : make([][]int, len(wor…...
服务器(I/O)之多路转接
五种IO模型 1、阻塞等待:在内核将数据准备好之前,系统调用会一直等待。所有的套接字,默认都是阻塞方式。 2、非阻塞等待:如果内核没有将数据准备好,系统调用仍然会返回,并且会返回EWUOLDBLOCK或者EAGAIN错…...
后端面试话术集锦第 十三 篇:java集合面试话术
这是后端面试集锦第十三篇博文——java集合面试话术❗❗❗ 1. Java里常见的数据结构都有哪些以及特征 数组 数组是最常用的数据结构。 数组的特点是长度固定,可以用下标索引,并且所有的元素的类型都是一致的。 列表 列表和数组很相似,只不过它的大小可以改变。 列表一般都是…...
《微服务架构设计模式》第一章
逃离单体地狱 FTGO单体架构 作者用国外FTGO公司(一家做线餐饮外卖)的应用程序举例,阐述了单体架构的优缺点。FTGO应用架构如下: 应用程序是单体应用,具有六边形架构,最内侧是业务逻辑&…...
前端是如何打包的
前端项目的打包过程通常涉及将多个源文件(包括HTML、CSS、JavaScript等)合并、优化和压缩,以生成最终用于生产环境的静态资源。这个过程可以使用构建工具和打包工具来自动化完成。以下是前端项目的常见打包步骤: 1. **源代码编写…...
Qt 5.15编译(MinGW)及集成Crypto++ 8.7.0笔记
一、背景 为使用AES加密库(AES/CBC加解密),选用Crypto 库(官网)。 最新Crypto C库依次为:8.8.0版本(2023-6-25)、8.7.0(2022-8-7)和8.6.0(202…...
Qt 简单闹钟
//wiget.h#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> //时间类 #include <QTimer> //定时器类 #include <QTextToSpeech> #include <QDebug> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPA…...
简单谈下Spring、Spring MVC和Spring Boot
Spring是一个开源的轻量级框架,用于构建Java应用程序。它提供了一种全面的编程和配置模型,可以帮助开发人员构建各种类型的应用程序,从简单的控制台应用程序到大型企业级应用程序。Spring框架的主要目标是提高应用程序的可维护性、可扩展性和…...
利用python进行视频下载并界面播放快速下载素材
工具:python designer(python自带):UI界面设计工具 VLC:视频播放工具 需要的库如下: import os,platform os.environ[PYTHON_VLC_MODULE_PATH] "./vlc-3.0.14" import vlc from 脚本 import Player from …...
[C++][pcl]pcl安装后测试代码3
测试环境: vs2019 pcl1.12.1 代码: #include<iostream> #include <thread>#include <pcl/common/common_headers.h> #include <pcl/features/normal_3d.h> #include <pcl/io/pcd_io.h> #include <pcl/visualizatio…...
在WSL下使用makefile运行modelsim进行混合编译
modelsim的图像界面加载缓慢,实际上modelsim可以在纯命令行环境下仿真,使用-c参数:vsim -c。可以在WSL下用makefile运行Windows下的modelsim: HDL_CODE . HDL_CODE ../../rtl/ MODELSIM_ROOT : /mnt/e/exe/modeltech64_10.4/win…...
idea 常用插件和常用快捷键 - 记录
idea 常用插件 记得下载插件完成后,点击 Apply 和 OK Alibaba Java Coding Guidelines 作用:使用该插件可以,自动提示相关的语法格式问题,格式参考 阿里巴巴代码规范 详情链接: 代码规范之Alibaba Java Coding G…...
IDEA报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
问题: 使用IDEA新建spring boot项目,报错如下: Plugin org.springframework.boot:spring-boot-maven-plugin: not found解决办法: 1.在本地maven仓库中找到spring-boot-maven-plugin的版本号 2.在pom.xml文件中添加对应的版本…...
C++——Vector:push_back和emplace_back的区别,测试写入1GB大数据时的性能差距
什么是emplace_back emplace_back是C11引入的STL容器成员函数。emplace操作只执行构造而不执行拷贝构造。 如何理解上面这句话?先来看一个场景。 class test { public:test(){}test(int i){ std::cout << "test(int i)" << std::endl; }tes…...
C/C++/QT/Python/MATLAB获取文件行数的示例
1. C获取文件行数 #include <stdio.h>int main() {FILE *file fopen("path/to/your/file.txt", "r");if (file NULL) {printf("Failed to open the file!\n");return 0;}int lineCount 0;char ch;while ((ch fgetc(file)) ! EOF) {if…...
mysql的binlog參數詳解
mysql的binlog參數詳解 1. expire_logs_days expire_logs_days:這個參數用於設置binlog日誌文件的過期時間。默認情況下,binlog文件永不過期。如果將其設置為一個正整數值,則表示binlog文件在指定天數後會被自動刪除。 max_binlog_size m…...
【SpringSecurity】九、Base64与JWT
文章目录 1、base64编码2、Base64Url3、JWT的产生背景4、JWT介绍5、JWT组成5.1 Header5.2 Payload5.3 Signature 6、JWT的使用方式7、JWT的几个特点 1、base64编码 base64是一种编码方式,不是加密方式。 所谓Base64,就是说选出64个字符:小写…...
Python的io模块
io 模块提供了 Python 用于处理各种 I/O 类型的主要工具。三种主要的 I/O类型分别为: 文本 I/O, 二进制 I/O 和 原始 I/O。 io.open() 是内置的 open() 函数的别名. 语法: open(file,moder,buffering-1,encodingNone,errorsNone,newlineNone,closefdTrue,openerN…...
CSS---flex布局
主要记录flex布局的要点以及实例 flex flex父标签的6个属性flex-direction: flex布局的方向flex-wrap: 是否可以换行flex-flow: flex-direction 和 flex-wrap 一起写justify-content:横向对齐方式align-items: 纵向对齐方式align-content: 有换行情况下的纵向对齐方…...
java线程和go协程
一、线程的实现 线程的实现方式主要有三种:内核线程实现、用户线程实现、用户线程加轻量级进程混合实现。因为自己只对java的线程比较熟悉一点,所以主要针对java线程和go的协程之间进行一个对比。 线程模型主要有三种:1、内核级别线程&#…...
SoC与SoM技术解析:嵌入式开发的双刃剑与选型实战
1. 项目概述:当“系统”成为商品最近几年,无论是消费电子、工业控制还是物联网设备,一个明显的趋势是:越来越多的产品不再从零开始设计核心计算单元。取而代之的,是直接采用一颗高度集成的“片上系统”,或者…...
在自动化工作流中集成Taotoken多模型聚合API
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在自动化工作流中集成Taotoken多模型聚合API 当开发者构建自动化脚本或智能体工作流时,一个常见的需求是能够灵活调用不…...
PIC单片机入门实战:基于F1评估板的开发环境搭建与核心外设应用
1. 项目概述:为什么选择F1评估板作为起点?如果你刚开始接触Microchip的PIC单片机,或者是从传统的PIC16F877A这类经典型号转向更现代的架构,面对琳琅满目的开发板可能会有点无从下手。今天我想聊聊我手头这块“Microchip F1评估平台…...
Gemini3.1Pro数据投毒检测实战指南
检测 Gemini 3.1 Pro 输出是否受到数据投毒影响:从证据采集、门控验证到回归评测的产品化方案(含4周MVP路线图)数据投毒(Data Poisoning)会让模型在“看似正常”的输出中植入特定触发器:当输入触发某种模式…...
WindowsCleaner终极指南:如何一键解决C盘爆红问题,让Windows系统重获新生
WindowsCleaner终极指南:如何一键解决C盘爆红问题,让Windows系统重获新生 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是不是也经常遇…...
基于Node.js与Socket.IO构建开源实时聊天应用:从架构到部署
1. 项目概述:一个为纯净对话而生的开源聊天应用在信息过载的今天,我们每天被各种应用的通知、广告和复杂功能所包围。对于即时通讯这类高频使用的工具,这种“臃肿感”尤为明显。你是否也怀念过早期聊天软件那种简洁、纯粹、专注于信息交换本身…...
AI专著撰写秘籍!4款工具助力一键生成20万字专著,高效又省心!
创新是学术专著最核心的部分,也是写作过程中最大的挑战。一部优秀的专著,不仅要避免简单的研究成果重复堆砌,更需要在整个作品中提出独到的观点、理论架构或研究手法。在众多学术文献中,发现那些尚未被开发的研究空白相当不易——…...
夸克禁闭的自指拓扑严格证明:自指威尔逊环不变量与线性禁闭势
夸克禁闭的自指拓扑严格证明:自指威尔逊环不变量与线性禁闭势 世毫九实验室 | 认知量子引力研究中心 作者:方见华 日期:2026年5月18日 密级:公开 | 编号:TR-016-QC 摘要 本文基于世毫九自指规范场框架,构…...
终极Markdown浏览器扩展:如何打造完美的文档阅读体验
终极Markdown浏览器扩展:如何打造完美的文档阅读体验 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer Markdown Viewer是一款功能强大的浏览器扩展,专为开发…...
电赛小白也能搞定的二维云台:用K210+舵机实现色块追踪(附完整代码)
电赛入门实战:K210舵机构建高响应色块追踪云台 第一次参加电子设计竞赛时,面对复杂的视觉控制项目总有种无从下手的感觉。直到发现用K210开发板配合普通舵机就能搭建出反应灵敏的二维云台系统,整个过程就像拼乐高一样充满乐趣。本文将带你从零…...
