24 lines
359 B
Go
24 lines
359 B
Go
package q70
|
|
|
|
func nWays(n, i int, cache []int) int {
|
|
if i == n {
|
|
return 1
|
|
}
|
|
if i > n {
|
|
return 0
|
|
}
|
|
if cache == nil {
|
|
cache = make([]int, n)
|
|
} else if cache[i] != 0 {
|
|
return cache[i]
|
|
}
|
|
ret := nWays(n, i+1, cache) + nWays(n, i+2, cache)
|
|
cache[i] = ret
|
|
return ret
|
|
}
|
|
|
|
func climbStairs(n int) int {
|
|
return nWays(n, 0, nil)
|
|
}
|
|
|
|
var _ = climbStairs
|