美文网首页
2019-09-13 爬楼梯问题

2019-09-13 爬楼梯问题

作者: 枫叶落尽 | 来源:发表于2019-10-05 18:39 被阅读0次

假设你正在爬楼梯。需要 n 步你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。


输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 步 + 1 步
2.  2 步
示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 步 + 1 步 + 1 步
2.  1 步 + 2 步
3.  2 步 + 1 步

分析:
当每次爬一步时,步数最多,为n:

当每次爬两步时,步数最少,为:n/2(先下取整n-1/2)

然后,步数肯定介于两者之间,我们从n开始考虑,当有一次走的是两步时:
可能是下图中任意两次一步合为一次:

有多少种可能呢? n-1 种。

当有两次走的是两步:
得分两步来处理:两边、中间
对于两边:没融合一个,减少两个可融合位置
对于中间,每融合一个,减少三个可融合位置

可以用排列组合来
\binom{10}{5}

C_{10}^{5}=10\times9\times8\times7\times6\div1\div2\div3\div4\div5

通过代码:

var climbStairs = function(n) {
    
    var min = (n+1)/2, max = n, com = 0;
    var ways=1;
    for(var j=max;j>min;){
        ways += combaine(++com,--j);
    }
    return ways;
};
function combaine(m,n)   // n>m    === n in m
{
    var denominator = n,numerator=1,result = 0;
    if(n==1){
        result = m;
    }
    else{
        for(var i=0;i<m-1;i++)
        {
            denominator = denominator*(--n);
            numerator = numerator * (i+2);
            if(denominator%numerator == 0)
            {
                denominator = denominator/numerator;
                numerator = 1;
            }
        }
        result = denominator/numerator;
    }
    return result;
}

相关文章

  • 2019-09-13 爬楼梯问题

    假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢...

  • 爬楼梯问题

    接触DP最早的应该就是这道题了吧,翻了翻leetcode submission发现最早的是在一年前... 而且是最...

  • 爬楼梯问题

    今天看到一个斐波纳切问题的变形,觉得很有意思,遂记录一下: 一个青蛙爬楼梯,他可以一次跳一节台阶,也可以跳两节,还...

  • LeetCode中动态规划问题的做题记录

    常规动态规划问题 相关题目: 70.爬楼梯 70.爬楼梯 描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每...

  • 算法-爬楼梯问题

    一个N阶的楼梯,每次能1或着2阶,问走n阶的楼梯有多少种走法? 分析可知在走第n阶的时候,是与第n-1阶和n-2阶...

  • “小明爬楼梯”问题

    问题来源 可爱的小明特别喜欢爬楼梯,他有的时候一次爬一个台阶,有的时候一次爬两个台阶,有的时候一次爬三个台阶。如果...

  • 解答牛顿爬楼梯问题

    今天面试遇到了这个题,脑子轴了一下, 没有答上来, 事后想了想, 其实也是蛮简单的问题 牛顿爬楼梯.png 爬楼梯...

  • redis 2019-09-13周报

    2019-09-13 Redis Cluster集群搭建与应用 redis cluster管理工具redis-tr...

  • LeetCode:70. 爬楼梯

    问题链接 70. 爬楼梯[https://leetcode-cn.com/problems/climbing-st...

  • 爬楼梯可以瘦大腿吗?

    爬楼梯可以瘦大腿妈?爬楼梯在生活中很常见,爬楼梯其实也是一种运动,很多女性想通过爬楼梯来瘦大腿,那么,爬楼梯可以瘦...

网友评论

      本文标题:2019-09-13 爬楼梯问题

      本文链接:https://www.haomeiwen.com/subject/mzsnyctx.html