题解

变态跳台阶

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

图片说明
从台阶只有1个到有n个时,每次需要跳多少次我们都可以记录下来,创建一个n+1维数组counts,下标表示台阶个数,counts[0] = 0, counts[1] = 1,从2开始,每个值等于它前面所有数再加1。但是这样做会造成重复的运算,和额外的内存开销,我们可以只创建一个2维数组,第一个数表示前n-1项的和,第二个数表示第n项的值:

public class Solution {
    public int JumpFloorII(int target) {
        int[] counts = new int[2];
        counts[0] = 1;
        counts[1] = 1;
        for (int i = 2; i <= target; i++) {
            int temp = counts[0] + 1;
            counts[0] += temp;
            counts[1] = temp;
        }
        return counts[1];
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 14:00
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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