Leetcode 70. 爬楼梯

70. 爬楼梯 - 力扣(LeetCode) (leetcode-cn.com)

 

思路

动态规划:

1
2
3
4
5
6
【转载】动态规划五部曲:
1.确定dp[i]的下标以及dp值的含义: 爬到第i层楼梯,有dp[i]种方法;
2.确定动态规划的递推公式:dp[i] = dp[i-1] + dp[i-2];
3.dp数组的初始化:因为提示中,1<=n<=45 所以初始化值,dp[1] = 1, dp[2] = 2;
4.确定遍历顺序:分析递推公式可知当前值依赖前两个值来确定,所以递推顺序应该是从前往后;
5.打印dp数组看自己写的对不对;

 

滚动数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func climbStairs(n int) int {
    if n==1{
        return 1
    }
    if n==2{
        return 2
    }
    one:=1
    two:=2
    three:=0
    for i:=3;i<=n;i++{
        three=one+two
        one,two=two,three
    }
    return  three
}

 

1
2
3
4
5
6
7
8
9
10
11
12
func climbStairs(n int) int {
    if n<=1{
        return 1
    }
    dp:=make(map[int]int,0)
    dp[1]=1
    dp[2]=2
    for i:=3;i<=n;i++{
        dp[i]=dp[i-1]+dp[i-2]
    }
    return dp[n]
}

  


__EOF__

本文作者SoutherLea
本文链接https://www.cnblogs.com/lizhengnan/p/16175497.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   SoutherLea  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示