代码随想录算法训练营第五十四天丨392. 判断子序列、115. 不同的子序列

无线图像传输新突破:深度JSCC算法在低带宽环境下的性能实测 本文深入探讨了基于深度学习的信源信道联合编码(JSCC)算法在低带宽无线图像传输中的突破性表现。通过实测数据对比,深度JSCC在低信噪比环境下展现出卓越的鲁棒性,有效对抗传统方案的“悬崖效应”,实现图像质量的平滑下降,为远程医疗、工业巡检等严苛场景提供了新的解决方案。 阅读详情

 392. 判断子序列

动规解法。

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        n1, n2 = len(s), len(t)
        dp = [[0] * (n2 + 1) for _ in range(n1 + 1)]
        for i in range(1, n1 + 1):
            for j in range(1, n2 + 1):
                if s[i - 1] == t[j - 1]:
                    dp[i][j] = dp[i - 1][j - 1] + 1
                else:
                    dp[i][j] = dp[i][j - 1]
        return dp[n1][n2] == n1

115. 不同的子序列

class Solution:
    def numDistinct(self, s: str, t: str) -> int:
        n1, n2 = len(s), len(t)
        dp = [[0] * (n2 + 1) for _ in range(n1 + 1)]
        for i in range(0, n1 + 1):
            dp[i][0] = 1
        for i in range(1, n1 + 1):
            for j in range(1, n2 + 1):
                if s[i - 1] == t[j - 1]:
                    dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]
                else:
                    dp[i][j] = dp[i - 1][j]
        return dp[n1][n2]

今日总结:

对删除这一概念还不是很明白。

手把手教你用组态王KingSCADA 3.53读取S7-1200 PLC数据(保姆级图文教程) 本文提供了一份详细的组态王KingSCADA 3.53读取S7-1200 PLC数据的实战教程,涵盖从硬件连接到软件配置、变量映射到故障排查的全流程。特别针对初学者常见问题提供解决方案,帮助工程师快速实现稳定通信,提升工业自动化系统效率。 阅读详情

相关推荐

手把手教你用 Docker 构建自己的 CentOS 基础镜像

目录一、准备CentOS基础镜像二、撰写Dockerfile三、构建Docker镜像四、生成Docker容器 相信码农们经常会听说:虚拟机将成为历史,Docker才是未来 !!! 事实如此,现在大部分公司都在用 Docker 技术,想拥有自己的 Docker 专属镜像,那么 Dockerfile 就是入门,现在让我们一起来看一下 ------ 构建 Docker 镜像的全过程。 好文章 记得收藏...

Nick.Peng's Blogs 1万+

代码随想录算法训练营第56天|392.判断子序列、115.不同的子序列

2.if (s[i - 1] == t[j - 1]),那么dp[i][j] = dp[i - 1][j - 1] + 1;= t[j - 1]),此时相当于t要删除元素,t如果把当前元素t[j - 1]删除,那么dp[i][j] 的数值就是 看s[i - 1]与 t[j - 2]的比较结果了,即:dp[i][j] = dp[i][j - 1];所以当s[i - 1] 与 t[j - 1]相等时,dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];

wx_xxxx的博客 819

STM32最小系统硬件组成详解

STM32最小系统硬件组成详解 0组成: 电源 复位 时钟 调试接口 启动 1、电源 : 一般3.3V LDO供电 加多个0.01uf去耦电容 2、复位:有三种复位方式:上电复位、手动复位、程序自动复位 通常低电平复位:(51单片机高电平复位,电容电阻位置调换) 上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,计...

alala120的博客 12万+

代码随想录算法训练营第day54|392.判断子序列 、 115.不同的子序列

t[j - 1]),此时相当于t要删除元素,t如果把当前元素t[j - 1]删除,那么dp[i][j] 的数值就是 看s[i - 1]与 t[j - 2]的比较结果了,即:dp[i][j] = dp[i][j - 1];if (s[i - 1] == t[j - 1]),那么dp[i][j] = dp[i - 1][j - 1] + 1;所以当s[i - 1] 与 t[j - 1]相等时,dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];

qq_60513199的博客 1089

Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk

cm4配置ros mavros连接pixhawk4 Pixhawk RPi CM4 Baseboard

baidu_41704597的博客 2127

W5500 MACRAW模式实战:在ESP32上抓取并解析原始以太网数据包

本文详细介绍了如何在ESP32开发板上使用W5500芯片的MACRAW模式捕获和解析原始以太网数据包。通过硬件连接指南、代码实现示例和协议解析技巧,帮助开发者深入理解网络通信底层机制,实现网络嗅探和自定义协议开发等高级应用。

weixin_42520573的博客 418

代码随想录算法训练营第55天|392.判断子序列|115.不同的子序列

本题跟前面几个题目的思路差不多。

2401_83080774的博客 959

用 CL_SALV_TREE 把层级数据做成一棵会呼吸的 ABAP ALV 树:从类继承扫描到事件交互的完整拆解

本文介绍了SAP ABAP中使用CL_SALV_TREE实现树形ALV报表的方法。该技术将层级数据(如类继承关系)以可展开/折叠的树形结构展示,解决了传统ALV Grid无法直观显示层次结构的问题。核心实现采用"数据表+层级表"分离的设计模式:数据表存储节点业务信息,层级表维护父子关系。通过add_node方法动态构建树形结构,支持设置节点文本、图标和事件。文中提供了完整示例代码,演示了如何递归扫描ABAP类继承关系并构建树形ALV,这种技术特别适用于展示类族谱、权限树等层级数据,能显著

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 206

代码随想录算法训练营第54天| Leetcode 392.判断子序列、Leetcode 115.不同的子序列

最后一道题的递推公式不太好理解,我感觉我并没有理解透彻。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

Camellia__Wang的博客 1080

【ComfyUI】SD1.5 + ControlNet 边缘检测融合动漫转真人

本文介绍了一个基于ComfyUI的动漫转真人图像生成工作流,通过多模型协同实现高质量的二次元图像转换。该工作流集成了Canny线稿预处理、ControlNet结构控制、VAE编码解码和人脸精细化处理等核心环节,采用majicmixRealistic_v7作为主模型,配合yolov8、SAM等辅助模型。整个流程包含11个标准化步骤,从图像输入、预处理到最终超分输出,通过ControlNet引导和CLIP语义控制确保生成图像的写实感和结构准确性,特别针对人脸区域进行专业优化,最终可输出高分辨率写实人像。

Mr数据杨 1125

【BUG已解决】ImportError: cannot import name ‘OpenAI‘ from ‘openai‘ 解决方案

的核心是版本不匹配用确认当前版本如果是 0.x 版本 →升级到 1.x升级后代码语法要同步改为团队协作项目务必在中锁定版本号,避免"我这能跑,你那不能跑"的问题对接国产模型时,只需替换base_url参数,SDK 调用方式完全一致。

一键难忘的博客 1万+

代码随想录算法训练营第四十七天|392.判断子序列,115.不同的子序列

确定dp数组(dp table)以及下标的含义:dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]确定dp数组(dp table)以及下标的含义:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j]给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 + 7 取模。dp数组如何初始化:dp[i][0] = 1,dp[0][j] = 0,其中dp[0][0]=1。

weixin_47748259的博客 1113

菜鸟哥玩蓝牙Ble4.0系列 ESP32初玩篇③ Beacon —— 广播应用,室内定位,内容推送

文章目录1、前言1.1 什么叫做Beacon?1.2 Beacon使用场景1.3 Beacon协议落地实现2、ESP32 Beacon案例3、Beacon核心库 —— BLEBeacon、BLEEddystoneTLM、BLEEddystoneURL3.1 BLEBeacon3.2 BLEEddystoneTLM3.3 BLEEddystoneURL 授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。

单片机菜鸟哥的博客 2万+

代码随想录算法训练营第五十四天||392.判断子序列、115.不同的子序列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

weixin_48040500的博客 712

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

代码随想录算法训练营第五十五天| LeetCode392.判断子序列、115.不同的子序列

编辑距离的入门

qq_64336203的博客 1025

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

代码随想录算法训练营第五十四天 | LeetCode 392. 判断子序列、115. 不同的子序列

那因此 dp[i][j] 就应该是考虑 s[i-1] 和不考虑 s[i-1] 的情况相加,dp[i][j]=dp[i-1][j-1]+dp[i-1][j]。如果 s[i-1]!如果不相等 else 只能在 t 中删除元素,即如果 s 的 i-1 位置和 t 的 j-1 位置不相等了,就把 t 的 j-1 位置删除掉了,考虑的就是 t 的 j-2 前面的字符串和 s 的 i-1 前面的字符串的相同子序列长度了,也就是 dp[i][j-1],dp[i][j]=dp[i][j-1],其实可以理解为继承的意思。

Hsusan的博客 203

代码随想录算法训练营DAY52|C++动态规划Part13|392.判断子序列、115.不同的子序列

KMP算法求的是连续序列,本题中仅仅是来求子序列(字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。一定都是1,因为也就是把以i-1为结尾的s,删除所有元素,出现空字符串的个数就是1。,也就是说,我们的当前格子需要左上方格子和左边格子才能推导出来。那必然是1,因为空字符串s可以删除0个元素,变成空字符串t。这一类问题,基本是要分析两种情况,这里是跟上一题一样的。根据递推公式来的,从上到下,从左到右。,如果遇到不相同的元素,字符串。

糖炒栗子 1180

代码随想录算法训练营第55天|392.判断子序列,115.不同的子序列

使用双指针法很简单,这里采用动态规划来解决。

MITWCQ的博客 660

代码随想录算法训练营第55天 |392.判断子序列 115.不同的子序列

t[j - 1]),此时相当于t要删除元素,t如果把当前元素t[j - 1]删除,那么dp[i][j] 的数值就是 看s[i - 1]与 t[j - 2]的比较结果了,即:dp[i][j] = dp[i][j - 1];其实这里 大家可以发现和。

Laulian的博客 961

代码随想录算法训练营Day55|392.判断子序列、115.不同的子序列

今天练习的两道题目依然是子序列问题,一样的处理方法简化dp数组初始化,但是在具体实现上还是比较困难的,第一次尝试没有什么思路。

m0_68682181的博客 1109

代码随想录算法训练营第58天|动态规划part15|392.判断子序列、115.不同的子序列

思路:(这道题也可以用双指针的思路来实现,时间复杂度也是O(n))这道题应该算是编辑距离的入门题目,因为从题意中我们也可以发现,只需要计算删除的情况,不用考虑增加和替换的情况。所以掌握本题的动态规划解法是对后面要讲解的编辑距离的题目打下基础。dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。注意这里是判断s是否为t的子序列。即t的长度是大于等于s的。

gengjiahao的博客 743

代码随想录算法训练营第四十三天 | 找公共的子序列 | 392.判断子序列(编辑距离)| 115.不同的子序列(困难)

自己实现中遇到哪些困难1035.不相交的线: 最长公共子序列53. 最大子序和:子数组的最大和392.判断子序列字符串s, 是否出现在字符串t中,判断他们子序列怎么想到的去找两个字符串中的公共子序列。115.不同的子序列s 的子序列, 满足 t 的个数。今日收获,记录一下自己的学习时间。

Noah_aa的博客 830

代码随想录算法训练营day55 | 392.判断子序列,115.不同的子序列

子序列(编辑距离)

jzh013的博客 807

代码随想录算法训练营第54天 | 392.判断子序列 , 115.不同的子序列

代码随想录算法训练营第54天 动态规划Part15

Aaron_Yang 773

代码随想录算法训练营第五十四天|392. 判断子序列、115. 不同的子序列。

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。1、确定dp数组(dp table)以及下标的含义dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。注意这里是判断s是否为t的子序列。即t的长度是大于等于s的。2、确定递推公式。

eternaappiness的博客 768

代码随想录算法训练营Day54 | 392.判断子序列、115.不同的子序列 | Python | 个人记录向

动态规划:392.判断子序列、115.不同的子序列。

Python基本算法 744

代码随想录算法训练营第五十四天|LeetCode392.判断子序列、LeetCode115.不同的子序列

从递推公式可以看出dp[i][j]都是依赖于dp[i-1][j-1]推出来,因此需要初始化dp[0][0],dp[i][0]从递推公式可以看出dp[i][j]都是依赖于dp[i-1][j-1]推出来,因此需要初始化dp[0][j],dp[i][0]dp[i][j]:表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]dp[i][j]:表示以下标i-1为结尾的子序列s中出现以j-1为结尾的t的个数为dp[i][j]空字符串s,可以删除0个元素,变成空字符串t。

m0_64514622的博客 910
上一篇: 代码随想录算法训练营第五十三天丨1143.最长公共子序列、1035. 不相交的线、53. 最大子数组和
下一篇: 代码随想录算法训练营第五十五天丨583. 两个字符串的删除操作、72. 编辑距离
LIEBESFREUD
博客等级 码龄9年 372粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值