Skip to content

Instantly share code, notes, and snippets.

@lbvf50mobile
Last active September 18, 2019 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lbvf50mobile/4b64e39751406ec5d1af3dcd5d3d5d14 to your computer and use it in GitHub Desktop.
Save lbvf50mobile/4b64e39751406ec5d1af3dcd5d3d5d14 to your computer and use it in GitHub Desktop.
climbStairs
# Runtime: 32 ms, faster than 68.51% of Ruby online submissions for Climbing Stairs.
# Memory Usage: 9.3 MB, less than 100.00% of Ruby online submissions for Climbing Stairs.
# https://leetcode.com/problems/climbing-stairs/submissions/
def cs(i,n,mem)
return 0 if i > n
return 1 if i == n
return mem[i] if mem[i]
mem[i] = cs(i+1, n, mem) + cs(i+2,n,mem)
end
def climb_stairs(n)
mem = {}
cs(0,n,mem)
end
// https://leetcode.com/problems/climbing-stairs/
// Time limit exceed
func climbStairs(n int) int {
counter := 0
// https://gobyexample.com/closures
// https://github.com/golang/go/issues/226
var recursion func(input int)
recursion = func (input int){
if 0 == input {
counter += 1
}
if 0 > input {
return
}
recursion(input - 1)
recursion(input - 2)
}
recursion(n)
return counter
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment