题解 | #跳台阶扩展问题#

跳台阶扩展问题

http://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387

升级版跳台阶
方法一:还可以使用找规律的方案,但此提的本意应该不是这么简单的(该方法属于取巧)

    int jumpFloorII(int number) {
        return pow(2,number - 1)
    }

方法二:从后往前跳,当i青蛙在第n个台阶时,共有f(n) = f(n-1) + f(n-2) + ....... + f(1)种方法;当青蛙在第 n-1 个台阶时,共有f(n-1) + f(n-2) + ....... + f(1)种方法,因此,该方式的状态转移方程(此处应用DP法的概念)如下:
f(n) = 2 f(n-1) ,当 n>1 时;
f(1) = 1, 当 n=1 时。

    int jumpFloorII(int number) {
        int ret = 0; //记录返回值
        int a = 1;  //初始值 f(1)
        if(number == 1) return 1;
        for(int i = 2; i < number + 1; ++i)
        {
            ret = 2 * a;
            a = ret;
        }
        return ret;
    }
全部评论

相关推荐

11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务