面试题 08.01. 三步问题
三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。
示例1:
输入:n = 3
输出:4
说明: 有四种走法
示例2:
输入:n = 5
输出:13
提示:
n范围在[1, 1000000]之间
这道题显然是要用到动态规划,而且与爬楼梯的另一道题基本一样,只是多了可以一次爬三层而已
另一道爬楼梯可以看下面的链接
https://blog.csdn.net/stackempty2/article/details/106622641
**
细节在于取模,如果对dp[i-1],dp[i-2],dp[i-3]都依次取模,结果依然可能越界,因为如果每个数都是比1000000007小一点点,那么相加后依然越界,所以应该先让两个相加,再取模,这样保证会被取余,就不存在越界情况了
**
class Solution {
p