golang 爬樓梯演算法

2022-07-11 06:45:08 字數 456 閱讀 5051

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

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

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

1. 遞迴:踏上第n台階之前,可能位於 第n-1個台階 或 第n-2個台階

2. 備忘map:快取已經算過的記錄,減少子問題個數,降低時間複雜度

package main

import (

"fmt"

)var mapdata = make(map[int]int, 0)

func main()

func climbstairs(n int) int

if _, ok := mapdata[n]; !ok

return mapdata[n]

}

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

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

爬樓梯演算法

有n階樓梯,有1,2,3 走m步走完樓梯,一共有多少種走法,並輸出所有的走法 設走n階台階的走法數為 f n 可以得到 f 1 1 f 2 2 f 3 4 對於n 3時,縮小問題規模 最後一步上乙個台階的話,之前上了n 1個台階,走法為f n 1 最後一步上兩個台階的話,之前上了n 2個台階,走法為...

golang 爬樓梯演算法 遞迴 非遞迴

遞迴實現的可讀性高,實現簡單。func climbstairs n int int current 當前爬的樓梯數 n 目標樓梯數 count 計數 func climb current,n int,count int if current 1 n if current 2 n 先定義乙個棧 typ...