剑指offer—补充2.变态跳台阶—分析及代码(Java)

剑指offer——补充2.变态跳台阶——分析及代码[Java]

一、题目

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

二、分析及代码

1. 排列组合

(1)思路

本题可直接用数学中排列组合的思想进行求解,因为青蛙一次可以跳任意级台阶,相当于从第 0 到第 n 级台阶,中间的 n - 1 级台阶青蛙都可选择跳或不跳,即共有 2 ^ (n - 1) 种跳法。
为提高运算速度,可直接用二进制移位操作实现。

(2)代码

public class Solution {
    
    
    public int JumpFloorII(int target) {
    
    
        int ans = 1;
        for (int i = 1; i < target; i++)
            ans <<= 1;
        return ans;
    }
}

(3)结果

运行时间: 13 ms,占用内存 9332 k。

三、其他

暂无。

猜你喜欢

转载自blog.csdn.net/zml66666/article/details/112254769