跳台阶-题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:f(0)=0, f(1)=1, f(2)=2, n>2时 状态转移方程为 f(n) = f(n-1) + f(n-2)
C/C++
Java
Python 运行时间:31ms 占用内存:5608k
# -*- coding:utf-8 -*- class Solution: def jumpFloor(self, number): # write code here ans = [] ans.append(0) ans.append(1) ans.append(2) for i in range(3,100): ans.append(ans[i-1] + ans[i-2]) return ans[number]
变态跳台阶-题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
C/C++
Java
Python
数学推倒 法 运行时间:30ms 占用内存:5604k
# -*- coding:utf-8 -*- class Solution: def jumpFloorII(self, number): # write code here return 2**(number-1)
移位 法 运行时间:25ms 占用内存:5856k
# -*- coding:utf-8 -*- class Solution: def jumpFloorII(self, number): # write code here if number == 0: return 0 elif number == 1: return 1 elif number == 2: return 2 else: return 2<<(number-2) //左移number-2位