已知爬楼梯问题的合法方法数满足:当n=1时只有1种方法,n=2时有2种方法,n≥3时方法数为前两阶方法数之和
def climb_stairs(n): if n <= 2: return n return climb_stairs(n-1) + climb_stairs(n-2)
def climb_stairs(n): if n < 1: raise ValueError("n必须为正整数") dp = [] * (n + 1) dp[1], dp[2] = 1, 2 for i in range(3, n + 1): dp[i] = dp[i-1] + dp[i-2] return dp[n]
def climb_stairs(n): a, b = 1, 2 for _ in range(n): a, b = b, a + b return a
def climb_stairs(n): return 2 ** (n-1)