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

深圳学校网站建设公司百度图片

深圳学校网站建设公司,百度图片,宿迁企业做网站,品质培训网站建设115.不同的子序列 题目 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数&#xff0c;结果需要对 109 7 取模。 数据范围 1 < s.length, t.length < 1000s 和 t 由英文字母组成 分析 令dp[i][j]为s的前i个字符构成的子序列中为t的前j…

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()];}
};
http://www.dt0577.cn/news/37875.html

相关文章:

  • dede网站模板免费下载自动点击关键词软件
  • 海报素材库网站免费网站推广四个阶段
  • 网站建设环境软件有哪些网络营销模式有哪些
  • 鞍山58同城租房网苏州seo服务
  • 中央政府网站建设管理办法如何联系百度客服
  • 企业网站模板 优帮云合肥做网站哪家好
  • 网站自动收录域名是什么意思
  • 龙华营销型网站制作哪家好比较好的网络推广平台
  • wordpress 搭建多站点seo营销课程培训
  • 郑州专业网站制作的公司网站推广主要是做什么
  • 有没有做淘宝网站的网页设计与制作考试试题及答案
  • 做校园代购较好的网站外包公司排名
  • 烟台网站公众号制作网站优化和网站推广
  • 外贸网站推广技巧一站式媒体发稿平台
  • 政府网站html5网站排名优化师
  • 南京做网站的有哪些广告搜索引擎
  • 网站 支持建设单位郑州网站
  • 做网站建设价格北京seo专员
  • 网站可以做充值吗镇江百度公司
  • 深圳宝安做网站百度搜索优化软件
  • php动态网站开发软件seo高手是怎样炼成的
  • asp.net开发微网站开发it培训班真的有用吗
  • 网站作风建设年专栏seo实战密码第四版pdf
  • 网站加速cdn自己做网站统计器
  • 手机搞笑网站模板下载安装许昌seo推广
  • php如何制作网站seo关键词排名优化手机
  • 天津门户网站开发西地那非片的功能主治和副作用
  • 移动端网站怎么做百度账号快速注册入口
  • 网站建设总体需求分析郑州网站制作推广公司
  • 吉林省绥中县城乡建设局网站seo的形式有哪些