91.解码方法(力扣leetcode) 博主可答疑该问题

一、笔记部分

 

思路:

暴力找全部

只要满足条件就往下走,直到找出一种情况,然后结果就+1。显示找一对,然后一路走,发现一对超过了范围,那么只能走1。因此会用到两个dfs

dfs(i+2,s),dfs(i+1,s) 。

这种易超时。

 

动态规划:

1.要找出所有的解码可能,就是找出一段数字所有的组合。暴力可以用两个循环,解决 。排列组合的规律

2.首先理解出题意  给出的字符串只有1-26有代表的含义,那么0 与27之后是没有含义的,但是双数可以拆分为两个单数,但是30 这种含0的是不能拆开的,因为拆开后0就没办法了,还有一个就是第一位不是是零因为是0的话,既不能拆,也不能表示出结果。

3.组合都是从前往后组合,那考虑后面的组合的数量,就相当于将前面的数量进行考虑,因为后面的组合有几个方式,是那种就按着那个递归式子走下去。用一个数组存储前i个解码字符的总数。

 

1.因为这个最大是两位数,所以自然想到从最后面的两位进行判定。符合正常逻辑都是从前往后进行组合。所以包含了这些数字的条件,都无法解码,因为我这边是无法解析特殊含0的数字。

2.因为考虑的是后两位,所以必定牵扯到前两位,i-2的位置,所以初始应该是从2,开始,dp[0]讲道理应该是没有输入字符串是否可以解码,但是前面已经将这个条件干掉了,这个dp[0]只是为了后面等于i=2的时候能够索引到i-2的解码数

3.既然考虑的是最后两位数,主要是为了考虑是否这两位数能拆否,不能拆就是前一种的结果。所以按照这个概念的话应该至少有三位数。

4.经典的条件判断,看最后两位数字是怎么样的,然后进行调用递归。

 

二、动态规划类型的高频面试题汇总:

https://blog.csdn.net/qq_40262372/article/details/112748995

 

三、各种类型的高频面试题汇总:

https://blog.csdn.net/qq_40262372/article/details/112556249

 

四、如有疑问可加QQ群讨论:725936761 博主免费答疑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值