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

跳台阶扩展问题

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;
    }
全部评论

相关推荐

牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务