剑指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)