剑指Offer编程题-变态跳台阶

题目:变态跳台阶

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

解题思路

刚把上一题”跳台阶“的笔记写完,休息一会儿准备下一题,发现这道题不就是我之前想错的题目吗。

不过看了下讨论区,发现有用移位实现的,涨了见识。

实现

python

左移一位相当于乘以2,比如n<<1等于n*2;这里1<<(number-1)相当于1*2^(number-1)

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        return 1<<(number-1)