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

力扣9.7

115.不同的子序列

题目

给你两个字符串 st ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 + 7 取模。

数据范围
  • 1 <= s.length, t.length <= 1000
  • st 由英文字母组成
分析

dp[i][j]s的前i个字符构成的子序列中为t的前j个字符的数量,接下来设置边界条件,当t为空时si个字符构成子序列只要空字符串满足,个数为1,即dp[i][0]=1,考虑状态转移

  • 当 s [ i ] ! = t [ j ] , d p [ i + 1 ] [ j + 1 ] = d p [ i ] [ j ] ; 当s[i]!=t[j],dp[i + 1][j + 1] = dp[i][j]; s[i]!=t[j]dp[i+1][j+1]=dp[i][j]
  • 当 s [ i ] = = t [ j ] , d p [ i + 1 ] [ j + 1 ] = d p [ i ] [ j ] + d p [ i ] [ j + 1 ] ; 当s[i]==t[j],dp[i+1][j+1] = dp[i][j] + dp[i][j + 1]; s[i]==t[j]dp[i+1][j+1]=dp[i][j]+dp[i][j+1];
代码
class Solution {
public: const static int N = 1005, mod = 1e9 + 7;int dp[N][N];int numDistinct(string s, string t) {if(s.size() < t.size()) return 0;for(int i = 0; i < s.size(); i ++ ) dp[i][0] = 1;for(int i = 0; i < s.size(); i ++ ) {for(int j = 0; j <= i && j < t.size(); j ++ ) {if(s[i] != t[j]) dp[i + 1][j + 1] = dp[i][j + 1];else dp[i + 1][j + 1] += dp[i][j] + dp[i][j + 1];dp[i + 1][j + 1] %= mod;}} return dp[s.size()][t.size()];}
};

63.不同路径Ⅱ

题目

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。

现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?

网格中的障碍物和空位置分别用 10 来表示。

数据范围
  • m == obstacleGrid.length
  • n == obstacleGrid[i].length
  • 1 <= m, n <= 100
  • obstacleGrid[i][j] 为 0 或 1
分析

dp[i][j]为到那个格子的路径数,考虑状态转移

  • 如果有障碍物, d p [ i ] [ j ] = 0 dp[i][j]=0 dp[i][j]=0
  • 没有障碍物, d p [ i ] [ j ] = d p [ i − 1 ] [ j ] + d p [ i ] [ j − 1 ] dp[i][j]=dp[i-1][j]+dp[i][j-1] dp[i][j]=dp[i1][j]+dp[i][j1]
代码
class Solution {
public:const static int N = 105;int dp[N][N];int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int n = obstacleGrid.size(), m = obstacleGrid[0].size();for(int i = 0; i < n; i ++ ) {for(int j = 0; j < m; j ++ ) {if(!i && !j && !obstacleGrid[i][j]) {dp[i + 1][j + 1] = 1;continue;}if(obstacleGrid[i][j]) dp[i + 1][j + 1] = 0;else dp[i + 1][j + 1] = dp[i][j + 1] + dp[i + 1][j]; }}return dp[n][m];}
};

746.使用最小花费爬楼梯

题目

给你一个整数数组 cost ,其中cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

数据范围
  • 2 <= cost.length <= 1000
  • 0 <= cost[i] <= 999
分析

dp[i]为到达那一层的最小花费,状态转移:

  • d p [ i ] = m i n ( d p [ i − 1 ] + c o s t [ i − 1 ] , d p [ i − 2 ] + c o s t [ i − 2 ] ) dp[i]=min(dp[i-1]+cost[i - 1],dp[i-2] + cost[i - 2]) dp[i]=min(dp[i1]+cost[i1],dp[i2]+cost[i2])
代码
class Solution {
public:const static int N = 1005;int dp[N];int minCostClimbingStairs(vector<int>& cost) {dp[0] = dp[1] = 0;for(int i = 2; i <= cost.size(); i ++ ) {dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);}return dp[cost.size()];}
};

相关文章:

力扣9.7

115.不同的子序列 题目 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数&#xff0c;结果需要对 109 7 取模。 数据范围 1 < s.length, t.length < 1000s 和 t 由英文字母组成 分析 令dp[i][j]为s的前i个字符构成的子序列中为t的前j…...

GPU 带宽功耗优化

移动端GPU 的内存结构&#xff1a; 先简述移动端内存cache结构&#xff1b;上图的UMA结构 on-Chip memory 包括了 L1、L2 cache&#xff0c;非常关键的移动端的 Tiles 也是保存在 on-chip上还包括寄存器文件&#xff1a;提供给每个核心使用的极高速存储。 共享内存&#xff08…...

Linux Centos 7网络配置

本步骤基于Centos 7&#xff0c;使用的虚拟机是VMware Workstation Pro&#xff0c;最终可实现虚拟机与外网互通。如为其他发行版本的linux&#xff0c;可能会有差异。 1、检查外网访问状态 ping www.baidu.com 2、查看网卡配置信息 ip addr 3、配置网卡 cd /etc/sysconfig…...

第三天旅游线路规划

第三天&#xff1a;从贾登峪到禾木风景区&#xff0c;晚上住宿贾登峪&#xff1b; 从贾登峪到禾木风景区入口&#xff1a; 1、行程安排 根据上面的耗时情况&#xff0c;规划一天的行程安排如下&#xff1a; 1&#xff09;早上9&#xff1a;00起床&#xff0c;吃完早饭&#…...

C++第四十七弹---深入理解异常机制:try, catch, throw全面解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1.C语言传统的处理错误的方式 2.C异常概念 3. 异常的使用 3.1 异常的抛出和捕获 3.2 异常的重新抛出 3.3 异常安全 3.4 异常规范 4.自定义…...

go 和 java 技术选型思考

背景&#xff1a; go和java我这边自身都在使用&#xff0c;感受比较深&#xff0c;java使用了有7年多&#xff0c;go也就是今年开始的&#xff0c;公司需要所以就学了使用&#xff0c;发现这两个语言都很好&#xff0c;需要根据场景选择&#xff0c;我写下我这边的看法。 关于…...

传统CV算法——边缘算子与图像金字塔算法介绍

边缘算子 图像梯度算子 - Sobel Sobel算子是一种用于边缘检测的图像梯度算子&#xff0c;它通过计算图像亮度的空间梯度来突出显示图像中的边缘。Sobel算子主要识别图像中亮度变化快的区域&#xff0c;这些区域通常对应于边缘。它是通过对图像进行水平和垂直方向的差分运算来…...

图像去噪算法性能比较与分析

在数字图像处理领域&#xff0c;去噪是一个重要且常见的任务。本文将介绍一种实验&#xff0c;通过MATLAB实现多种去噪算法&#xff0c;并比较它们的性能。实验中使用了包括中值滤波&#xff08;MF&#xff09;、自适应加权中值滤波&#xff08;ACWMF&#xff09;、差分同态算法…...

Vision Transformer(ViT)模型原理及PyTorch逐行实现

Vision Transformer(ViT)模型原理及PyTorch逐行实现 一、TRM模型结构 1.Encoder Position Embedding 注入位置信息Multi-head Self-attention 对各个位置的embedding融合&#xff08;空间融合&#xff09;LayerNorm & ResidualFeedforward Neural Network 对每个位置上单…...

828华为云征文 | Flexus X实例CPU、内存及磁盘性能实测与分析

引言 随着云计算的普及&#xff0c;企业对于云资源的需求日益增加&#xff0c;而选择一款性能强劲、稳定性高的云实例成为了关键。华为云Flexus X实例作为华为云最新推出的高性能实例&#xff0c;旨在为用户提供更强的计算能力和更高的网络带宽支持。最近华为云828 B2B企业节正…...

FreeRTOS学习笔记(六)队列

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、队列的基本内容1.1 队列的引入1.2 FreeRTOS 队列的功能与作用1.3 队列的结构体1.4 队列的使用流程 二、相关API详解2.1 xQueueCreate2.2 xQueueSend2.3 xQu…...

【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)

文章目录 PyQt5入门级超详细教程前言第4部分&#xff1a;事件处理与信号槽机制4.1 什么是信号与槽&#xff1f;4.2 信号与槽的基本用法4.3 信号与槽的基础示例代码详解&#xff1a; 4.4 处理不同的信号代码详解&#xff1a; 4.5 自定义信号与槽代码详解&#xff1a; 4.6 信号槽…...

LinuxQt下的一些坑之一

我们在使用Qt开发时&#xff0c;经常会遇到Windows上应用正常&#xff0c;但到Linux嵌入式下就会出现莫名奇妙的问题。这篇文章就举例分析下&#xff1a; 1.QPushButton按钮外侧虚线框问题 Windows下QPushButton按钮设置样式正常&#xff0c;但到了Linux下就会有一个虚线边框。…...

Statement batch

我们可以看到 Statement 和 PreparedStatement 为我们提供的批次执行 sql 操作 JDBC 引入上述 batch 功能的主要目的&#xff0c;是加快对客户端SQL的执行和响应速度&#xff0c;并进而提高数据库整体并发度&#xff0c;而 jdbc batch 能够提高对客户端SQL的执行和响应速度,其…...

PPP 、PPPoE 浅析和配置示例

一、名词&#xff1a; PPP&#xff1a; Point to Point Protocol 点到点协议 LCP&#xff1a;Link Control Protocol 链路控制协议 NCP&#xff1a;Network Control Protocol 网络控制协议&#xff0c;对于上层协议的支持&#xff0c;N 可以为IPv4、IPv6…...

【Python机器学习】词向量推理——词向量

目录 面向向量的推理 使用词向量的更多原因 如何计算Word2vec表示 skip-gram方法 什么是softmax 神经网络如何学习向量表示 用线性代数检索词向量 连续词袋方法 skip-gram和CBOW&#xff1a;什么时候用哪种方法 word2vec计算技巧 高频2-gram 高频词条降采样 负采样…...

Python 语法糖:让编程更简单(续二)

Python 语法糖&#xff1a;让编程更简单&#xff08;续&#xff09; 10. Type hints Type hints 是 Python 中的一种语法糖&#xff0c;用于指定函数或变量的类型。例如&#xff1a; def greet(name: str) -> None:print(f"Hello, {name}!")这段代码将定义一个…...

6 - Shell编程之sed与awk编辑器

目录 一、sed 1.概述 2.sed命令格式 3.常用操作的语法演示 3.1 输出符合条件的文本 3.2 删除符合条件的文本 3.3 替换符合条件的文本 3.4 插入新行 二、awk 1.概述 2. awk命令格式 3.awk工作过程 4.awk内置变量 5.awk用法示例 5.1 按行输出文本 5.2 按字段输出文…...

什么是XML文件,以及如何打开和转换为其他文件格式

本文描述了什么是XML文件以及它们在哪里使用,哪些程序可以打开XML文件,以及如何将XML文件转换为另一种基于文本的格式,如JSON、PDF或CSV。 什么是XML文件 XML文件是一种可扩展标记语言文件。它们是纯文本文件,除了描述数据的传输、结构和存储外,本身什么也不做。 RSS提…...

海外直播对网速、带宽、安全的要求

要满足海外直播的要求&#xff0c;需要拥有合适的网络配置。在全球化的浪潮下&#xff0c;海外直播正逐渐成为企业、个人和各类组织的重要工具。不论是用于市场推广、品牌宣传&#xff0c;还是与观众互动&#xff0c;海外直播都为参与者带来了丰富的机会。然而&#xff0c;确保…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...