70. 爬楼梯
前往楼梯顶部最后一跳要么是1台阶, 要么是两阶, 所以只要把x-1阶的部署加上x-2阶的步数,就能算出x阶的步数了
f(x)=f(x−1)+f(x−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 {
n1,n2 := 1,2
if n==1 {
return n1
}
if n==2 {
return n2
}
var sum int
for i:=2 ;i<n;i++{
sum = n1+n2
n1=n2
n2 = sum
}
return sum
}