爬樓梯 窮舉樹

2021-09-25 16:46:39 字數 827 閱讀 9504

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

1 階 + 1 階

2 階輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

1 階 + 1 階 + 1 階

1 階 + 2 階

2 階 + 1 階

將所有的方式都給遍歷出來,形狀像是乙個樹結構,每個節點都會**出兩個子節點。當子節點為總台階數時,終止**,方法數+1

package main

import

"fmt"

func

main()

//記錄表

var h =

make

(map

[int

]int

)//樹方法

func

tree

(i, n int

)int

//終止條件 當前的台階等於總台階,則算是走完了一次

if i == n

//在記錄表中檢查下,當前的方式是否嘗試過

if v, ok := h[i]

; ok

//樹方法的主體思路, 乙個節點可以分拆出兩種可能

return

tree

(i+1

, n)

+tree

(i+2

, n)

}

python爬樓梯遞迴 爬樓梯(Python3)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...

python爬樓梯演算法 爬樓梯(Python3)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...

爬樓梯 python Python3爬樓梯演算法示例

假設你正在爬樓梯。需要 n 步你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。方案一 每一步都是前兩步和前一步的和 class solution object def climbstairs self,n type n int rt...