白話解 Leetcode - 70 Climbing Stairs

Posted by Alan Zhan on Wednesday, July 13, 2022

70. Climbing Stairs

https://leetcode.com/problems/climbing-stairs/

題意

你在爬樓梯,一次可以爬一階或兩階,請問你有種爬可以爬完?

解題思路

我們使用動態處理,爬第一階的話,一定是 1 種方法,爬第二階的話,我們可以爬 1 + 1 或者 2 的方式,所以有兩種方法,爬三階的話其實就是第一階與第二階的方法加總,以此類推,就可以推出我們的答案了。

原始碼

func climbStairs(n int) int {
    if (n == 0 || n == 1) {
        return n
    }
    res := make([]int, n + 1)
    res[1] = 1
    res[2] = 2
    for i := 3; i <= n; i++ {
        res[i] = res[i - 1] + res[i - 2]
    }
    return res[n]
}

結尾

你有更好或更簡單的解決方案嗎?

歡迎到我的 Facebook Alan 的筆記本 留言,順手給我個讚吧!你的讚將成為我持續更新的動力,感謝你的閱讀,讓我們一起學習成為更好的自己。