列表

详情


面试题 08.01. 三步问题

三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。

示例1:

 输入:n = 3 
 输出:4
 说明: 有四种走法

示例2:

 输入:n = 5
 输出:13

提示:

  1. n范围在[1, 1000000]之间

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int waysToStep(int n) { } };

golang 解法, 执行用时: 20 ms, 内存消耗: 9.6 MB, 提交时间: 2021-06-21 10:26:39

func waysToStep(n int) int {
    dp := make([]int, n+4)
    dp[0] = 0
    dp[1] = 1
    dp[2] = 2
    dp[3] = 4
    for i := 4; i < n+4; i++ {
        dp[i] = (dp[i-1] + dp[i-2]) % 1000000007 + dp[i-3]
        dp[i] %= 1000000007
    }
    return dp[n]
}

上一题