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 的筆記本 留言,順手給我個讚吧!你的讚將成為我持續更新的動力,感謝你的閱讀,讓我們一起學習成為更好的自己。