題目描述
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
思路
羅列出所有部分結果, 總結規律
假設有一個4級臺階(t),開始列舉所有結果
臺階1 : 直接跳一階
臺階2 : 直接跳法 + 先跳到 一階
臺階3 : 直接跳法 + 先到一階再到三階 + 先到二階再到三階
臺階4 : 直接跳法 + 先到一階再到四階 + 先到二階再到四階 + 先到三階再到四階
。。。
臺階n : 直接跳法 + 先到一階再到n階 + 。。。。。 先到n-1 階再到n階
t1 = 1
t2 = 1 + t
t3 = 1 + t1 + t 2
t4 = (1 + t1 + t 2) + t 3 = t3 + t3
t5 = (1 + t 1 + t 2 + t 3) + t4 = t4 + t4
…
t n = 1 + t1 + t2+ … t n-1 = t n-1 + t n-1
class Solution:
def jumpFloorII(self, number):
# write code here
if number <= 0:
return 0
if number <= 2:
return number
t1 = 1
t2 = 2
target = t1 + t2 + 1 # t3的結果
for i in range(3,number):
target += target
return target