力扣712. 两个字符串的最小ASCII删除和

动态规划

  • 思路:
    • 假设 dp[i][j] 是 s1 长度 i 和 s2 长度 j 两个字符串的最小 ASCII 删除和;
    • dp[i][j] 可以由:
      • 如果 s1 的第 i 个字符(s1[i - 1])和 s2 的第 j 个字符(s2[j - 1])不相等,则:
        • dp[i - 1][j] 加上删除 s1 的第 i 个字符,即dp[i][j] = dp[i - 1][j] + s1(i - 1);
        • dp[i][j - 1] 加上删除 s2 的第 j 个字符,即dp[i][j] = dp[i][j - 1] + s2(j - 1);
        • 取其中最小值即可;
      • 如果 s1 的第 i 个字符和 s2 的第 j 个字符相等,则:
        • dp[i][j] = dp[i - 1][j - 1]
    • 如果两个都是空串,删除和为0,即 dp[0][0] = 0
    • 如果有一个是空串,则删除和为另一个字符串所有字符的 ASCII 和:
      • dp[i][0] = dp[i - 1][0] + s1[i - 1]
      • dp[0][j] = dp[0][j - 1] + s2[j - 1]
class Solution {
public:int minimumDeleteSum(string s1, string s2) {int m = s1.size();int n = s2.size();std::vector<std::vector<int>> dp(m + 1, std::vector<int>(n + 1));dp[0][0] = 0;for (int i = 1; i < m + 1; ++i) {dp[i][0] = dp[i - 1][0] + s1[i - 1];}for (int j = 1; j < n + 1; ++j) {dp[0][j] = dp[0][j - 1] + s2[j - 1];}for (int i = 1; i < m + 1; ++i) {for (int j = 1; j < n + 1; ++j) {if (s1[i - 1] == s2[j - 1]) {dp[i][j] = dp[i - 1][j - 1];} else {dp[i][j] = std::min(dp[i - 1][j] + s1[i - 1], dp[i][j - 1] + s2[j - 1]);}}}return dp[m][n];}
};

———————————————————————————————————————

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中的递归函数是什么

Python 递归函数 递归的特性&#xff1a; 1.调用自身函数 2.有一个结束条件 3.递归效率不高&#xff0c;可能会导致栈溢出(函数调用是通过栈这种数据结构实现的&#xff0c;每进入一个函数调用&#xff0c;栈就会增加一层栈帧&#xff0c;函数每返回&#xff0c;栈就会减少…

idea项目如何上传gitee

1.先创建仓库 2.从gitee上面clone下来 3.配置一下git 4.在idea里面安装Gitee插件&#xff08;安装完插件重启一下&#xff09; 5.将项目提交到远程仓库 git->add->✔ 完后点击↗ 在码云如何获取token&#xff1f; 注&#xff1a;没有解决&#xff0c;有时间在继续研究

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-4 Document

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>Document</title> </head><body> <canvas id"cavsElem" width"400" height"600">您的浏览器不支持Canvas…

“农村新型便民商店”成为电商下沉市场的新业态、新模式、新场景

“农村新型便民商店”成为电商下沉市场的新业态、新模式、新场景 文丨微三云营销总监胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 引言&#xff1a;从商务部、中华全国供销合作总社等9部门印发的《县域商业三年行动计划&#xff08;202…

FDTD的边界条件设置

PML边界条件 完美匹配层&#xff08;Perfectly Matched Layers&#xff0c;简称PML&#xff09;是一种高级吸收边界条件&#xff0c;在有限差分时域法&#xff08;Finite-Difference Time-Domain&#xff0c;简称FDTD&#xff09;模拟中被广泛应用、。PML旨在通过在仿真区域边…

vit细粒度图像分类(三)TRS-DeiT 学习笔记

1.摘要 细粒度图像分类任务由于自身存在的细微的类间差别和巨大的类内差别使其极具挑战性&#xff0c; 为了更好地学习细粒度图像的潜在特征&#xff0c; 该算法将知识蒸馏引入到细粒度图像分类任务中&#xff0c; 提出基于知识蒸馏与目标区域选取的细粒度图像分类方法&#xf…

面试相关|常见试题 or 易错题集合

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注、&#x…

机器学习模型预测贷款审批

机器学习模型预测贷款审批 作者&#xff1a;i阿极 作者简介&#xff1a;数据分析领域优质创作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&…

tritonserver学习之六:自定义c++、python custom backend实践

tritonserver学习之一&#xff1a;triton使用流程 tritonserver学习之二&#xff1a;tritonserver编译 tritonserver学习之三&#xff1a;tritonserver运行流程 tritonserver学习之四&#xff1a;命令行解析 tritonserver学习之五&#xff1a;backend实现机制 1、环境准备…

C/C++ (stdio.h)标准库详解

cstdio,在C语言中称为stdio.h。该库使用所谓的流与物理设备&#xff08;如键盘、打印机、终端&#xff09;或系统支持的任何其他类型的文件一起操作。 在本文将会通过介绍函数参数&#xff0c;举出实际的简单例子来帮助大家快速上手使用函数。 目录 一、流 二、库函数 1、F…

range函数用法完全解读

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 迭代器是 23 种设计模式中最常用的一种&#xff08;之一&#xff09;&#xff0c;在 Python 中随处可见它的身影&#xff0c;我们经常用到它&#xff0c;但是却不…

如何制作翻页效果的电子书

如何制作翻页效果的电子书&#xff1f;想必大家对这个问题也非常困扰吧&#xff01;不知道从何做起&#xff1f;不知道该怎么制作&#xff1f;那你看到这篇文章就对啦&#xff01;按照我说的去实践&#xff0c;你也能轻松制作 制作翻页效果的电子书并不复杂&#xff0c;只需要一…

基于ldap实现登录认证

最近开发的应用需要外协人员实现登录认证&#xff0c;外协人员的密码等信息已经录入到ldap, 需要连接ldap进行登录认证。下面先介绍一下登录的网络旅程图。 一.nginx实现AES加密 nginx请求处理入口&#xff08;前端请求为json格式&#xff09; location /aes {default_type te…

uniapp多格式文件选择(APP,H5)

uniapp多格式文件选择&#xff08;APP&#xff0c;H5&#xff09; 背景实现代码实现运行结果注意事项 尾巴 背景 从手机选择文件进行上传是移动端很常见的需求&#xff0c;在原生开发时由于平台专一性很容易实现。但是用uniapp开发官方提供的API在APP平台只能选择图片和视频&a…

Java RC4加密算法

一、RC4加密算法 在密码学中&#xff0c;RC4&#xff08;来自Rivest Cipher 4的缩写&#xff09;是一种流加密算法&#xff0c;密钥长度可变。它加解密使用相同的密钥&#xff0c;因此也属于对称加密算法。 百度百科 - RC4&#xff1a;https://baike.baidu.com/item/RC4/34545…

乔拓云教育系统:打造培训机构全面数字化转型新篇章

在当今数字化、信息化高速发展的时代&#xff0c;教育培训机构也需要与时俱进&#xff0c;借助先进的管理工具提升运营效率&#xff0c;优化学员学习体验。乔拓云教育系统正是这样一个全面、高效、一站式的解决方案&#xff0c;为教育培训机构提供强大的技术支持和全方位的服务…

Focaler-IoU:更聚焦的IoU损失

摘要 边界框回归在目标检测领域中起着至关重要的作用&#xff0c;而目标检测的定位精度在很大程度上取决于边界框回归的损失函数。现有的研究通过利用边界框之间的几何关系来提高回归性能&#xff0c;而忽略了难易样本分布对边界框回归的影响。本文分析了难易样本分布对回归结…

零基础学编程初级视频教程,中文编程工具免费版下载及编程源码文件下载

零基础学编程初级视频教程&#xff0c;中文编程工具免费版下载及编程源码文件下载 编程初级视频教程链接 https://edu.csdn.net/course/detail/39061 编程工具及实例源码文件下载可以点击最下方官网卡片——软件下载——常用工具下载——编程工具免费版下载及实例源码下载。…

Ubuntu2204+ROS2(humble)+usb_cam内参标定

1、安装usb_cam包 pip install pydantic1.10.14sudo apt install ros-humble-usb-cam# 测试打开相机 ros2 launch usb_cam camera.launch.py# 显示图像 ros2 run image_view image_view image:/camera1/image_raw 2、安装 camera_calibration sudo apt install ros-humble-c…

PawSQL更新 | 新增18个SQL性能审核重写规则

PawSQL最新版本针对DML和DQL新增了审核和重写优化规则共计33个&#xff0c;整体的规则数目达到了83个&#xff0c;覆盖了正确性&#xff0c;安全性、可维护性、性能四个方面的SQL质量问题&#xff0c;并提供了优化建议&#xff0c;已经形成比较完善的针对数据操作的SQL质量审查…