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

算法训练营第五十六天|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. 两个字符串的删除操作 文章链接&#xff1a;代码随想录 题目链接&#xff1a;583. 两个字符串的删除操作 思路&#xff1a;直接记录需要改&#xff08;增或删&#xff09;几个&#xff0c;也就是求不…...

使用WAF防御网络上的隐蔽威胁之目录穿越

目录穿越&#xff08;Directory Traversal&#xff09;是一种网络安全攻击手段&#xff0c;也被称为路径穿越。 这种攻击允许攻击者访问存储在Web服务器文件系统上的文件和目录&#xff0c;这些文件和目录原本不应该对用户可见或可访问。 通过利用安全漏洞&#xff0c;攻击者…...

Linux:vim的相关知识

目录 vim 是一个较为常见的编译文件的命令操作。 三种模式的区分的作用如下&#xff1a; 命令模式&#xff1a; 插入模式&#xff1a; 进入插入模式的标志&#xff1a;左下角有INSERT 底行模式&#xff1a; 命令模式的常见命令&#xff1a; 底行模式常见命令&#xff1…...

Qt 国产嵌入式操作系统实现文字转语音功能(ekho库)

1.简介 Qt 国产嵌入式操作系统实现文字转语音功能(TTS)_tts驱动 转文字-CSDN博客 在继上篇文章之后,甲方粑粑不满意使用eSpeak发出的声音太难听了,这就不得不找个替代品,声音稍微好听了一些。 使用ekho开源库。 Ekho(余音)是一个免费、开源的中文语音合成软件。它目…...

Redis常见类型及常用命令

目录 常见的数据类型 一、String类型 1、简介 2、常用命令 &#xff08;1&#xff09;新建key &#xff08;2&#xff09;设值取值 ​编辑 &#xff08;3&#xff09;批量操作 &#xff08;4&#xff09;递增递减 3、原子性操作 4、数据结构 二、list类型 1、list常…...

实战纪实 | 某配送平台zabbix 未授权访问 + 弱口令

本文由掌控安全学院 - 17828147368 投稿 找到一个某src的子站&#xff0c;通过信息收集插件wappalyzer&#xff0c;发现ZABBIX-监控系统&#xff1a; 使用谷歌搜索历史漏洞&#xff1a;zabbix漏洞 通过目录扫描扫描到后台&#xff0c;谷歌搜索一下有没有默认弱口令 成功进去了…...

【第十五课】数据结构:堆 (“堆”的介绍+主要操作 / acwing-838堆排序 / c++代码 )

目录 关于堆的一些知识的回顾 数据结构&#xff1a;堆的特点 "down" 和 "up"&#xff1a;维护堆的性质 down up 数据结构&#xff1a;堆的主要操作 acwing-838堆排序 代码如下 时间复杂度分析 确实是在写的过程中频繁回顾了很多关于树的知识&…...

前端JavaScript篇之JavaScript有哪些数据类型,它们的区别?

目录 JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f;数据类型区别 JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f; 数据类型 JavaScript数据类型有&#xff1a; Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt… St…...

LeetCode---380周赛

题目列表 3005. 最大频率元素计数 3006. 找出数组中的美丽下标 I 3007. 价值和小于等于 K 的最大数字 3008. 找出数组中的美丽下标 II 一、最大频率元素计数 这题就是个简单的计数题&#xff0c;正常遍历统计数据即可&#xff0c;关键是你要会写代码逻辑。 代码如下&…...

archlinux 如何解决安装以后没有声音的问题

今天安装完archlinux以后发现看视频没声音 检查一下是否有 /lib/firmware/intel/sof 发现没有 如果你也是这样的话&#xff0c;可以尝试安装&#xff1a; sudo pacman -S sof-firmware 重启后再看看有没有声音&#xff1a; reboot 反正我有声音了...

什么是ORM思想?

1. ORM概念 ORM&#xff08;Object Relational Mapping&#xff09;对象关系映射模式&#xff0c;是一种技术&#xff0c;解决了面向对象与关系型数据库存互不匹配的现象。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2. ORM由来 在软件开发的过程中&#xff0c;通常…...

设计接口时,为其添加签名鉴权---详细教程

一、何为签名 我们知道无论是restful api还是传统接口、亦或是其他形式接口的调用&#xff0c;接口签名都是非常重要的安全机制&#xff0c;它可以确保请求的发起者是经过认证和授权的客户端&#xff0c;同时也可以防止接口被攻击&#xff0c;请求参数被篡改等等。 用大白话来解…...

5G+物联网:连接万物,重塑智慧社区,开启未来生活新纪元,助力智慧社区的革新与发展

一、5G与物联网&#xff1a;技术概述与基础 随着科技的飞速发展&#xff0c;第五代移动通信技术&#xff08;5G&#xff09;和物联网&#xff08;IoT&#xff09;已经成为当今社会的热门话题。这两项技术作为现代信息社会的核心基础设施&#xff0c;正深刻地改变着人们的生活和…...

[反转链表] [合并两个有序链表][分割链表]

这里写目录标题 反转链表合并两个有序链表分割链表 反转链表 1、题目&#xff1a; 2.思路  思路1&#xff1a;建立一个newHead,取一个节点进行头插。具体做法如下&#xff01; 建立一个newHead(新头)&#xff0c;由于一个节点里面存的是下一个节点的地址&#xff0c;如果取…...

中文数据让LLM变笨?

我这里先贴一下论文的原链接&#xff1a; https://arxiv.org/abs/2401.10286 然后贴一下我翻译标注的下载链接&#xff1a;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

前言 差单调栈就结束代码随想录一刷啦&#xff0c;回家二刷打算改用python补充进博客&#xff0c;小涛加油&#xff01;&#xff01;&#xff01; 647. 回文子串 - 力扣&#xff08;LeetCode&#xff09; 双指针法 中心点外扩&#xff0c;注意中心点可能有一个元素可能有两个…...

二.Winform使用Webview2在Demo1中实现地址简单校验

Winform使用Webview2在Demo1中实现地址简单校验 往期目录回顾添加对于的简单url验证提示通过上节和本节涉及到的函数有 往期目录 往期相关文章目录 专栏目录 回顾 通过一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址 我们已经知道了解决资源…...

从0开始学习C++ 第二十课:模板与泛型编程

第二十课&#xff1a;模板与泛型编程 学习目标&#xff1a; 掌握模板的基本语法和概念。学会使用函数模板来创建可重用的函数。学习如何定义类模板以实现数据结构的泛型。理解模板在C中提供的灵活性和强大功能。 学习内容&#xff1a; 模板的概念&#xff1a; 模板是C中支持…...

pcl之滤波器(一)

pcl滤波器 pcl一共是有十二个主要模块&#xff0c;详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块&#xff0c;官网一共是提供了6个例程&#xff0c;今天先来看第一第二个。 直通…...

java项目性能优化(MyBatis中开启查询缓存及flushCache与useCache的使用)

在java项目中&#xff0c;如果需要大量的DB查询&#xff0c;导致缓存过多&#xff0c;项目运行缓慢&#xff0c;可以设置在select查询时&#xff0c;添加二级缓存的清空。 如果没有去配置flushCache、useCache&#xff0c;那么默认是启用缓存的。 1&#xff0c;flushCache默认…...

LLM4Decompile:用AI魔法让二进制代码重获新生![特殊字符]

LLM4Decompile&#xff1a;用AI魔法让二进制代码重获新生&#xff01;&#x1f680; 【免费下载链接】LLM4Decompile LLM4Decompile是前端技术的革新之作&#xff0c;面向软件逆向工程领域的革命性工具。此开源项目利用大型语言模型深入二进制世界的奥秘&#xff0c;将复杂的机…...

Uvicorn ASGI服务器部署架构深度解析:从单机到生产集群的完整指南

Uvicorn ASGI服务器部署架构深度解析&#xff1a;从单机到生产集群的完整指南 【免费下载链接】uvicorn An ASGI web server, for Python. &#x1f984; 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn 在Python异步Web开发领域&#xff0c;Uvicorn已成为高…...

OpenClaw灾难恢复:Qwen3-32B-Chat配置备份与快速重建

OpenClaw灾难恢复&#xff1a;Qwen3-32B-Chat配置备份与快速重建 1. 为什么需要自动化备份策略 上周五凌晨三点&#xff0c;我的开发机突然宕机。硬盘故障导致OpenClaw所有配置和Qwen3-32B-Chat模型接入设置全部丢失——这个教训让我意识到&#xff1a;个人开发环境同样需要企…...

Clawdbot汉化版开源可部署:MIT协议+全栈TypeScript+模块化Agent设计解析

Clawdbot汉化版开源可部署&#xff1a;MIT协议全栈TypeScript模块化Agent设计解析 1. 项目概述与技术特色 Clawdbot是一个开源的智能对话助手系统&#xff0c;采用MIT协议发布&#xff0c;允许用户自由使用、修改和分发。这个项目的核心价值在于让用户能够在主流即时通讯平台…...

数模小白别慌!手把手教你用Python和MATLAB搞定国赛美赛(附2022年M奖/省一代码)

数模竞赛入门指南&#xff1a;从零到获奖的Python与MATLAB实战路径 数学建模竞赛对于初学者而言&#xff0c;往往像一座难以攀登的高山。第一次面对赛题时&#xff0c;那种无从下手的迷茫感我至今记忆犹新——三个队友围着一道看似简单的题目&#xff0c;却连该用什么工具、从哪…...

常量和常量表达式1

一、基础定义&#xff08;C/C通用核心定义&#xff09; 1. 常量&#xff08;Constant&#xff09; 程序整个生命周期内值不可修改、固定不变的量&#xff0c;是值的实体&#xff08;单个固定值/命名固定值&#xff09;&#xff0c;其值的确定时机可在编译期/预处理期&#xff0…...

all-MiniLM-L6-v2问题修复:相似度计算与维度匹配错误处理

all-MiniLM-L6-v2问题修复&#xff1a;相似度计算与维度匹配错误处理 1. 问题概述 all-MiniLM-L6-v2作为轻量级句子嵌入模型&#xff0c;在实际应用中常遇到两类核心问题&#xff1a; 相似度计算异常&#xff1a;结果超出[-1,1]范围或明显不符合语义维度匹配错误&#xff1a…...

STM32的ADC+DMA还能这么玩?深入剖析定时器触发与波形显示的性能边界与优化

STM32的ADCDMA性能极限探索&#xff1a;从定时器触发到波形显示的深度优化 在嵌入式数据采集领域&#xff0c;ADC与DMA的协同工作一直是性能优化的关键战场。当我们需要在资源受限的MCU上实现高精度波形采集时&#xff0c;如何榨取STM32的每一分性能潜力&#xff1f;本文将带您…...

VBA延时技术全解析:从基础Timer到高精度API的避坑指南

1. VBA延时技术入门&#xff1a;为什么需要精确控制时间&#xff1f; 在自动化办公场景中&#xff0c;VBA脚本经常需要控制操作节奏。比如批量处理Excel数据时&#xff0c;如果连续快速操作可能导致系统资源冲突&#xff1b;或者开发用户界面时需要实现按钮点击后的缓冲效果。这…...

cv_unet_image-colorization稳定性验证:连续72小时高负载运行无内存泄漏

cv_unet_image-colorization稳定性验证&#xff1a;连续72小时高负载运行无内存泄漏 1. 项目简介与测试背景 在AI工具的实际应用中&#xff0c;稳定性与可靠性往往比惊艳的演示效果更为重要。一个工具能否在长时间、高负载的场景下稳定运行&#xff0c;直接决定了它能否从“玩…...