美文网首页
剑指 offer 学习之变态跳台阶

剑指 offer 学习之变态跳台阶

作者: Kevin_小飞象 | 来源:发表于2020-03-26 09:08 被阅读0次

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

题目链接:牛客网

解题思路

动态规划

import java.util.*;
public class Main {
    
    public static void main(String[] args) {
        System.out.println(jumpFloorII(3));
        System.out.println(jumpFloorII(10));
    }
    
    public static int jumpFloorII(int target) {
        int[] dp = new int[target];
        Arrays.fill(dp, 1);
        for (int i = 1; i < target; i++) {
            for (int j = 0; j < i; j++) {
                dp[i] += dp[j];
            }
        }
           
        return dp[target - 1];
    }
}

数学推导
跳上 n-1 级台阶,可以从 n-2 级跳 1 级上去,也可以从 n-3 级跳 2 级上去...,那么

f(n-1) = f(n-2) + f(n-3) + ... + f(0)

同样,跳上 n 级台阶,可以从 n-1 级跳 1 级上去,也可以从 n-2 级跳 2 级上去... ,那么

f(n) = f(n-1) + f(n-2) + ... + f(0)

综上可得

f(n) - f(n-1) = f(n-1)

f(n) = 2*f(n-1)

所以 f(n) 是一个等比数列

public int jumpFloorII(int target) {
    return (int) Math.pow(2, target - 1);
}

测试结果

image.png

相关文章

  • [剑指offer] 变态跳台阶

    本文首发于我的个人博客:尾尾部落 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该...

  • 变态跳台阶 剑指offer

    题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳...

  • 剑指offer 变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种...

  • [剑指Offer]变态跳台阶

    本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03...

  • 剑指 offer 学习之变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种...

  • 剑指offer 动态规划 斐波拉契数列 跳台阶 变态跳台阶 矩阵

    剑指offer 动态规划 Python and C++ 1、斐波拉契数列2、跳台阶3、变态跳台阶4、矩阵覆盖 斐波...

  • 剑指offer(九)变态跳台阶

    写在前面: 为了增长一下自己的数据结构能力,也为了面试准备,准备将剑指Offer做一下,并与各位分享,希望各位可以...

  • 【python】剑指offer,变态跳台阶?

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法...

  • [剑指offer][Java]变态跳台阶

    题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法...

  • 剑指Offer--变态跳台阶

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 经...

网友评论

      本文标题:剑指 offer 学习之变态跳台阶

      本文链接:https://www.haomeiwen.com/subject/rnrxuhtx.html