题目
代码实现:
func climbStairs(n int) int {
if n == 1||n == 2{
return n
}
var temp = make(map[int]int)
temp[0] = 1
temp[1] = 2
for i := 2; i < n; i++ {
temp[i] = temp[i-1] + temp[i-2]
}
return temp[n-1]
}
解题思路:最终的方法数=到前一步的方法数+到前两步的方法数,也就是temp[i] = temp[i-1] + temp[i-2]。可以暴力递归(进一步优化可以递归+记忆化)也可使用动态规划求解。代码使用动态规划实现。
本文解析了如何通过动态规划解决经典的'爬楼梯'问题,介绍了递推公式temp[i]=temp[i-1]+temp[i-2],并展示了代码实现,重点在于代码优化和解题思路的解释。
349

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



