题解

变态跳台阶

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

相关推荐

06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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