假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶?
func climbStairs(n int) int {
n1,n2,num :=0,0,1
for i:=1;i<=n;i++{
n1 = n2
n2 = num
num = n1+n2
}
return num
}
//递归运行效率低,切耗时长
func climbStairs1(n int) int {
num :=0
if n ==1{
num =1
return num
}
if n==2{
num =2
return num
}
num = climbStairs(n-1) +climbStairs(n-2)
return num
}

本文探讨了如何用递归和动态规划解决爬楼梯问题,指出递归方法效率低下,然后介绍了更高效地计算不同爬楼方式的动态规划解决方案。
192

被折叠的 条评论
为什么被折叠?



