NC68 #跳台阶#

跳台阶

http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4

最简单的动态规划

class Solution {
public:
    int jumpFloor(int number) {
        int dp[number + 1];
        dp[1] = 1;
        dp[0] = 1;
        for(int i = 2; i <= number; i++)
            dp[i] = dp[i - 1] + dp[i - 2];
        return dp[number];
    }
};

优化一下,只用三个变量

class Solution {
public:
    int jumpFloor(int number) {
        if(number == 0 || number == 1) return number;
        int a = 1, b = 1, c;
        for(int i = 2; i <= number; i++)
        {
            c = a + b;
            a = b;
            b = c;
        }
        return c;
    }
};
全部评论

相关推荐

回家当保安:今天刚过字节一面,接佬的好运
我的求职进度条
点赞 评论 收藏
分享
鲸鸿:实习协议不用管签多久,要走的时候提前三天说就可以了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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