1. 程式人生 > 實用技巧 >一週刷完劍指offer-9-變態跳臺階

一週刷完劍指offer-9-變態跳臺階

變態跳臺階

1. 題目描述

一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

2. 示例

3. 解題思路

相當於找規律的一道題目:

如果是1級 -> 1種

如果是2級 -> 一次跳2級 【2】,一次一次跳【1,1】, 2種

如果是3級 -> 【1,1,1】【1,2】【2,1】【3】,4種

如果是4級 -> 【1111】【112】【13】【121】【211】【22】【31】【4】,8種

所以找到規律:跳法 target = 2 的 (target-1) 次方

4. Java實現

public class Solution {
    public int JumpFloorII(int target) {
        if (target == 1) return 1;
        int res = 1 ;
        for (int i = 1; i < target; i++){
            res *= 2;
        }
        return res;
    }
}

5. Python實現

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        if number == 1:
            return 1
        
        res = 1
        for i in range(1, number):
            res *= 2
        return res

如果您覺得本文有用,請點個“在看”