一周刷完剑指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

如果您觉得本文有用,请点个“在看”

image.png

posted @ 2020-09-17 15:27  蜘蛛侠不会飞  阅读(115)  评论(0编辑  收藏  举报

俺的博客

https://blog.csdn.net/qq_40587575

俺的公众号