算法训练营第五十六天|583. 两个字符串的删除操作 72. 编辑距离
目录
- Leetcode583. 两个字符串的删除操作
- Leetcode72. 编辑距离
Leetcode583. 两个字符串的删除操作
文章链接:代码随想录
题目链接:583. 两个字符串的删除操作
思路:直接记录需要改(增或删)几个,也就是求不公共的子序列
class Solution {
public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1));for (int i = 0; i <= word1.size(); i++) dp[i][0] = i;for (int j = 0; j <= word2.size(); j++) dp[0][j] = j;for (int i = 1; i <= word1.size(); i++){for (int j = 1; j <= word2.size(); j++){if (word1[i - 1] == word2[j - 1]) dp[i][j] = dp[i - 1][j - 1];else dp[i][j] = min(dp[i - 1][j - 1] + 2, min(dp[i][j - 1] + 1, dp[i - 1][j] + 1));}}return dp[word1.size()][word2.size()];}
};
也可以记录最长公共子序列,再减
class Solution {
public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1));for (int i = 1; i <= word1.size(); i++){for (int j = 1; j <= word2.size(); j++){if (word1[i - 1] == word2[j - 1]) dp[i][j] = dp[i - 1][j - 1] + 1;else dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]);}}return word1.size() + word2.size() - dp[word1.size()][word2.size()] * 2;}
};
Leetcode72. 编辑距离
文章链接:代码随想录
题目链接:72. 编辑距离
思路:和上一题相比,差别在于多了替换,因此dp[i - 1][j - 1] 只需要多加一步即可变为dp[i][j]。
class Solution {
public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1));for (int i = 0; i <= word1.size(); i++) dp[i][0] = i;for (int j = 1; j <= word2.size(); j++) dp[0][j] = j;for (int i = 1; i <= word1.size(); i++){for (int j = 1; j <= word2.size(); j++){if (word1[i - 1] == word2[j - 1]) dp[i][j] = dp[i - 1][j - 1];else dp[i][j] = min(dp[i - 1][j - 1] + 1, min(dp[i - 1][j] + 1, dp[i][j - 1] + 1));}}return dp[word1.size()][word2.size()];}
};
第五十六天打卡,今天给周老师写了个冰层项目进展,耽误了一些学习进度,加油!!!
相关文章:
算法训练营第五十六天|583. 两个字符串的删除操作 72. 编辑距离
目录 Leetcode583. 两个字符串的删除操作Leetcode72. 编辑距离 Leetcode583. 两个字符串的删除操作 文章链接:代码随想录 题目链接:583. 两个字符串的删除操作 思路:直接记录需要改(增或删)几个,也就是求不…...
使用WAF防御网络上的隐蔽威胁之目录穿越
目录穿越(Directory Traversal)是一种网络安全攻击手段,也被称为路径穿越。 这种攻击允许攻击者访问存储在Web服务器文件系统上的文件和目录,这些文件和目录原本不应该对用户可见或可访问。 通过利用安全漏洞,攻击者…...
Linux:vim的相关知识
目录 vim 是一个较为常见的编译文件的命令操作。 三种模式的区分的作用如下: 命令模式: 插入模式: 进入插入模式的标志:左下角有INSERT 底行模式: 命令模式的常见命令: 底行模式常见命令࿱…...
Qt 国产嵌入式操作系统实现文字转语音功能(ekho库)
1.简介 Qt 国产嵌入式操作系统实现文字转语音功能(TTS)_tts驱动 转文字-CSDN博客 在继上篇文章之后,甲方粑粑不满意使用eSpeak发出的声音太难听了,这就不得不找个替代品,声音稍微好听了一些。 使用ekho开源库。 Ekho(余音)是一个免费、开源的中文语音合成软件。它目…...
Redis常见类型及常用命令
目录 常见的数据类型 一、String类型 1、简介 2、常用命令 (1)新建key (2)设值取值 编辑 (3)批量操作 (4)递增递减 3、原子性操作 4、数据结构 二、list类型 1、list常…...
实战纪实 | 某配送平台zabbix 未授权访问 + 弱口令
本文由掌控安全学院 - 17828147368 投稿 找到一个某src的子站,通过信息收集插件wappalyzer,发现ZABBIX-监控系统: 使用谷歌搜索历史漏洞:zabbix漏洞 通过目录扫描扫描到后台,谷歌搜索一下有没有默认弱口令 成功进去了…...
【第十五课】数据结构:堆 (“堆”的介绍+主要操作 / acwing-838堆排序 / c++代码 )
目录 关于堆的一些知识的回顾 数据结构:堆的特点 "down" 和 "up":维护堆的性质 down up 数据结构:堆的主要操作 acwing-838堆排序 代码如下 时间复杂度分析 确实是在写的过程中频繁回顾了很多关于树的知识&…...
前端JavaScript篇之JavaScript有哪些数据类型,它们的区别?
目录 JavaScript有哪些数据类型,它们的区别?数据类型区别 JavaScript有哪些数据类型,它们的区别? 数据类型 JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt… St…...
LeetCode---380周赛
题目列表 3005. 最大频率元素计数 3006. 找出数组中的美丽下标 I 3007. 价值和小于等于 K 的最大数字 3008. 找出数组中的美丽下标 II 一、最大频率元素计数 这题就是个简单的计数题,正常遍历统计数据即可,关键是你要会写代码逻辑。 代码如下&…...
archlinux 如何解决安装以后没有声音的问题
今天安装完archlinux以后发现看视频没声音 检查一下是否有 /lib/firmware/intel/sof 发现没有 如果你也是这样的话,可以尝试安装: sudo pacman -S sof-firmware 重启后再看看有没有声音: reboot 反正我有声音了...
什么是ORM思想?
1. ORM概念 ORM(Object Relational Mapping)对象关系映射模式,是一种技术,解决了面向对象与关系型数据库存互不匹配的现象。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2. ORM由来 在软件开发的过程中,通常…...
设计接口时,为其添加签名鉴权---详细教程
一、何为签名 我们知道无论是restful api还是传统接口、亦或是其他形式接口的调用,接口签名都是非常重要的安全机制,它可以确保请求的发起者是经过认证和授权的客户端,同时也可以防止接口被攻击,请求参数被篡改等等。 用大白话来解…...
5G+物联网:连接万物,重塑智慧社区,开启未来生活新纪元,助力智慧社区的革新与发展
一、5G与物联网:技术概述与基础 随着科技的飞速发展,第五代移动通信技术(5G)和物联网(IoT)已经成为当今社会的热门话题。这两项技术作为现代信息社会的核心基础设施,正深刻地改变着人们的生活和…...
[反转链表] [合并两个有序链表][分割链表]
这里写目录标题 反转链表合并两个有序链表分割链表 反转链表 1、题目: 2.思路 思路1:建立一个newHead,取一个节点进行头插。具体做法如下! 建立一个newHead(新头),由于一个节点里面存的是下一个节点的地址,如果取…...
中文数据让LLM变笨?
我这里先贴一下论文的原链接: https://arxiv.org/abs/2401.10286 然后贴一下我翻译标注的下载链接:https://gitee.com/chatpaper/arXiv_top_chinese/blob/master/0801_top/%E4%B8%AD%E6%96%87%E4%BC%9A%E8%AE%A9LLM%E5%8F%98%E7%AC%A8%EF%BC%9F.pdf 先…...
【代码随想录】刷题笔记Day54
前言 差单调栈就结束代码随想录一刷啦,回家二刷打算改用python补充进博客,小涛加油!!! 647. 回文子串 - 力扣(LeetCode) 双指针法 中心点外扩,注意中心点可能有一个元素可能有两个…...
二.Winform使用Webview2在Demo1中实现地址简单校验
Winform使用Webview2在Demo1中实现地址简单校验 往期目录回顾添加对于的简单url验证提示通过上节和本节涉及到的函数有 往期目录 往期相关文章目录 专栏目录 回顾 通过一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址 我们已经知道了解决资源…...
从0开始学习C++ 第二十课:模板与泛型编程
第二十课:模板与泛型编程 学习目标: 掌握模板的基本语法和概念。学会使用函数模板来创建可重用的函数。学习如何定义类模板以实现数据结构的泛型。理解模板在C中提供的灵活性和强大功能。 学习内容: 模板的概念: 模板是C中支持…...
pcl之滤波器(一)
pcl滤波器 pcl一共是有十二个主要模块,详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块,官网一共是提供了6个例程,今天先来看第一第二个。 直通…...
java项目性能优化(MyBatis中开启查询缓存及flushCache与useCache的使用)
在java项目中,如果需要大量的DB查询,导致缓存过多,项目运行缓慢,可以设置在select查询时,添加二级缓存的清空。 如果没有去配置flushCache、useCache,那么默认是启用缓存的。 1,flushCache默认…...
LLM4Decompile:用AI魔法让二进制代码重获新生![特殊字符]
LLM4Decompile:用AI魔法让二进制代码重获新生!🚀 【免费下载链接】LLM4Decompile LLM4Decompile是前端技术的革新之作,面向软件逆向工程领域的革命性工具。此开源项目利用大型语言模型深入二进制世界的奥秘,将复杂的机…...
Uvicorn ASGI服务器部署架构深度解析:从单机到生产集群的完整指南
Uvicorn ASGI服务器部署架构深度解析:从单机到生产集群的完整指南 【免费下载链接】uvicorn An ASGI web server, for Python. 🦄 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn 在Python异步Web开发领域,Uvicorn已成为高…...
OpenClaw灾难恢复:Qwen3-32B-Chat配置备份与快速重建
OpenClaw灾难恢复:Qwen3-32B-Chat配置备份与快速重建 1. 为什么需要自动化备份策略 上周五凌晨三点,我的开发机突然宕机。硬盘故障导致OpenClaw所有配置和Qwen3-32B-Chat模型接入设置全部丢失——这个教训让我意识到:个人开发环境同样需要企…...
Clawdbot汉化版开源可部署:MIT协议+全栈TypeScript+模块化Agent设计解析
Clawdbot汉化版开源可部署:MIT协议全栈TypeScript模块化Agent设计解析 1. 项目概述与技术特色 Clawdbot是一个开源的智能对话助手系统,采用MIT协议发布,允许用户自由使用、修改和分发。这个项目的核心价值在于让用户能够在主流即时通讯平台…...
数模小白别慌!手把手教你用Python和MATLAB搞定国赛美赛(附2022年M奖/省一代码)
数模竞赛入门指南:从零到获奖的Python与MATLAB实战路径 数学建模竞赛对于初学者而言,往往像一座难以攀登的高山。第一次面对赛题时,那种无从下手的迷茫感我至今记忆犹新——三个队友围着一道看似简单的题目,却连该用什么工具、从哪…...
常量和常量表达式1
一、基础定义(C/C通用核心定义) 1. 常量(Constant) 程序整个生命周期内值不可修改、固定不变的量,是值的实体(单个固定值/命名固定值),其值的确定时机可在编译期/预处理期࿰…...
all-MiniLM-L6-v2问题修复:相似度计算与维度匹配错误处理
all-MiniLM-L6-v2问题修复:相似度计算与维度匹配错误处理 1. 问题概述 all-MiniLM-L6-v2作为轻量级句子嵌入模型,在实际应用中常遇到两类核心问题: 相似度计算异常:结果超出[-1,1]范围或明显不符合语义维度匹配错误:…...
STM32的ADC+DMA还能这么玩?深入剖析定时器触发与波形显示的性能边界与优化
STM32的ADCDMA性能极限探索:从定时器触发到波形显示的深度优化 在嵌入式数据采集领域,ADC与DMA的协同工作一直是性能优化的关键战场。当我们需要在资源受限的MCU上实现高精度波形采集时,如何榨取STM32的每一分性能潜力?本文将带您…...
VBA延时技术全解析:从基础Timer到高精度API的避坑指南
1. VBA延时技术入门:为什么需要精确控制时间? 在自动化办公场景中,VBA脚本经常需要控制操作节奏。比如批量处理Excel数据时,如果连续快速操作可能导致系统资源冲突;或者开发用户界面时需要实现按钮点击后的缓冲效果。这…...
cv_unet_image-colorization稳定性验证:连续72小时高负载运行无内存泄漏
cv_unet_image-colorization稳定性验证:连续72小时高负载运行无内存泄漏 1. 项目简介与测试背景 在AI工具的实际应用中,稳定性与可靠性往往比惊艳的演示效果更为重要。一个工具能否在长时间、高负载的场景下稳定运行,直接决定了它能否从“玩…...
