你在爬楼梯,需要n步才能爬到楼梯顶部
每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?
思路:第n个位置是第n-1个位置和第n-2个位置的和。
package main
/**
*
* @param n int整型
* @return int整型
*/
func climbStairs( n int ) int {
// write code here
s := make(map[int]int)
s[0] = 1
s[1] = 1
for i := 2; i <= n; i++ {
s[i] = s[i-1] + s[i-2]
}
return s[n]
}
该博客探讨了一个经典的算法问题——爬楼梯。通过使用动态规划,你可以找出爬到楼梯顶部的可能方法数。代码示例展示了如何利用一个字典存储中间状态,并通过前两个位置的和来计算当前位置的方法数。这种方法有效地解决了递归问题,避免了重复计算。

435

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



