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