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

如何取消网站备案号网络推广理实一体化软件

如何取消网站备案号,网络推广理实一体化软件,什么网站做推广好,上海公司车牌最新价格[动态规划] (四) LeetCode 91.解码方法 91. 解码方法 题目解析 (1) 对字母A - Z进行编码1-26 (2)11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码 (3) 0n不能解码 (4) 字符串非空,返回解码方法的总数 解题思路 状态表示 dp[i]:以i为结…

[动态规划] (四) LeetCode 91.解码方法

91. 解码方法

image-20231103192610042

题目解析

(1) 对字母A - Z进行编码1-26

(2)11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码

(3) 0n不能解码

(4) 字符串非空,返回解码方法的总数

解题思路
状态表示

dp[i]:以i为结尾,的解码方法

状态转移方程

1.单独解码

  • dp[i]与dp[i-1]分别解码:s[i]解码成功,即加上dp[i-1];解码失败,则这种方法以及之前的解码方法dp[i-1]是错误的,方法数0

2.组合解码

  • dp[i]与dp[i-1]组合:s[i-1] * 10 + s[i],解码成功,即加上dp[i-2];解码失败,则到dp[i-2]的方法是错误的,方法数0
初始化和填表顺序
  • 初始化

我们使用了i-1i-2的值,所以初始化dp[0]和dp[1]。

dp[0]与s[0]有关

dp[1]与s[1]有关,还与s[0]与s[1]的组合有关

dp[0] = s[0] != '0';
if(dp[1] != '0') dp += dp[0];
if(dp[0] != '0' && dp[1] != '0') dp[1] += dp[0];
int sum = ((dp[0] - '0') * 10 + (dp[1] - '0'));
if(sum >= 10 && sum <= 26) dp[1] += 1;
  • 填表顺序

从左往右填表

返回值

返回n-1位置即可,同状态表示

代码实现
class Solution {
public:int numDecodings(string s) {//构建dp数组int n = s.size();vector<int> dp(n);//初始化if(s[0] != '0') dp[0] = 1;//单独解码if(n == 1) return dp[0];if(s[0] != '0' && s[1] != '0') dp[1] += dp[0];//单独解码int sum = (s[0] - '0') * 10 + s[1] - '0';if(sum >= 10 && sum <= 26) dp[1]++;//组合解码//填表for(int i = 2; i < n; i++){//情况1if(s[i] != '0') dp[i] += dp[i-1];//情况2sum = (s[i-1] - '0') * 10 + s[i] - '0';if(sum >= 10 && sum <= 26) dp[i] += dp[i-2];}//返回结果return dp[n-1];}
};

image-20231103194639683

总结

细节1:字符串中数字进行±*/需要减一个字符0。

细节2:数据范围,字符串长度为1时直接返回dp[0]

细节3:初始化dp[1]时的代码与填表时的代码高度重合,我们可以进行优化

优化方法

1.将申请的空间扩大一位,将填表的下标向后推一位。

2.dp[0]初始化为1,dp[0]为我们虚构出来的一位;因为我们想要使i=2,dp[i]初始化正确,会访问到dp[i-2]。如果dp[0]为0,在计算组合的情况时,就会少加一次dp[i-2]。

3.因为我们把申请的空间dp,填表下标向后推一位,访问字符串s的下标得前进一位,则循环中s[i]的i都得减1

4.将填表的下标向后推一位,返回值也得向后推一位,即dp[n]。

优化代码
class Solution {
public:int numDecodings(string s) {//优化代码int n = s.size();vector<int> dp(n+1);dp[0] = 1;dp[1] = s[0] != '0';if(n == 1) return dp[1];for(int i = 2; i <= n; i++){if(s[i-1] != '0') dp[i] += dp[i-1];int sum = ((s[i-2] - '0') * 10) + (s[i-1] - '0');if(sum >= 10 && sum <= 26) dp[i] += dp[i-2];}return dp[n];}
};

image-20231103195008881

http://www.hengruixuexiao.com/news/33354.html

相关文章:

  • 做网站vi系统是什么国内it培训机构排名
  • 地方门户网站赚钱吗免费生成短链接
  • 服务器做的网站 怎么使用三只松鼠有趣的软文
  • 西安知名的集团门户网站建设费用外贸订单一般在哪个平台接
  • 做政府网站排行榜微博营销的特点
  • 建材团购网站建设方案辽宁和生活app下载安装
  • 个人作品展示网站模板百度贴吧官网首页
  • 有没有哪个网站怎么做动漫新闻的百度输入法
  • 北京免费发布企业信息网站怎么建立自己的企业网站
  • 做qq链接的网站优化网站seo方案
  • 网站托管目的是什么河北seo
  • 如何给自己做的网站加上域名免费seo工具大全
  • 企业网站建设三个原则在线资源搜索引擎
  • 周浦手机网站策划建设公司公司网站建设费用多少
  • 建设网站深圳罗湖灰色词快速排名方法
  • 国外网站做调查推广普通话宣传内容
  • 二手域名做网站不收录seo优化排名工具
  • 合肥 电子商务 网站建设杭州网站优化平台
  • web盒子模型长春seo整站优化
  • 黄石网站制作公司网站搜索排名
  • 池州网站优化武汉seo软件
  • 东莞网站建设乐云seo在线制作广州信息流推广公司排名
  • 苏州大学网站建设目标搜索引擎排名优化程序
  • 设计网站作品下拉框关键词软件
  • 怎样做网站赚流量做网站的费用
  • php网站开发就业合肥seo推广培训班
  • 微信公众号链接的网站怎么做行业关键词查询
  • 笑话网站域名肇庆百度快速排名
  • 重庆秀山网站建设报价百度信息流是什么
  • 遂宁网页设计公司电子商务seo实训总结