力扣题目:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
LeetCode题目源地址:https://leetcode-cn.com/problems/climbing-stairs/
我们先列举几个例子:
可见,如果有 n 级台阶,那么方法就是前两级台阶的方法之和,即 (n-1) + (n-2)
首先想到的方法就是递归了
func climbStairs(n int) int {
if n == 1 {
return 1
}
if n==2{
return 2
}
return climbStairs(n-1) + climbStairs(n-2)
}
func climbStairs(n int) int {
if n == 1 {
return 1
}
if n==2{
return 2
}
a := 1
b := 2
for i:= 3; i <= n; i++{
temp := a
a = b
b = temp + a
}
return b
}