Skip to main content
  1. 我要成为蒜法高手/

动态规划

·1 min·
Table of Contents

按照灵神题单刷题,题单如下 灵神题单

入门DP
#

爬楼梯

70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 12 个台阶。你有多少种不同的方法可以爬到楼顶呢?

按照思路,需要思考,dfs(i) 是什么含义 这里是到达 i 层需要多少走多少阶台阶,想要到达i层 我们要先到 i-1 或者 i-2

Picture1.png

func climbStairs(n int) int {
    var dfs func(int )  int 
    cache:=make([]int,n+1)
    dfs=func(i int )(ans int ) {
        if i<=1 {
            return 1 
        }
        if cache[i]!=0{
            return cache[i]
        }
        ans= dfs(i-1)+dfs(i-2)
        cache[i]=ans
        return
    }
    return dfs(n)
    
}
Sianao
Author
Sianao
a backend developer

Related


每日一题