diff --git a/lib/fibonacci.rb b/lib/fibonacci.rb index 7465c25..4f717cb 100644 --- a/lib/fibonacci.rb +++ b/lib/fibonacci.rb @@ -1,8 +1,13 @@ # Improved Fibonacci -# Time Complexity - ? -# Space Complexity - ? (should be O(n)) +# Time Complexity - o(n) +# Space Complexity - o(n) (should be O(n)) # Hint, you may want a recursive helper method def fibonacci(n) - + # base case: n = 0 => 0, n = 1 => 1 + return raise ArgumentError if n < 0 + return n if n == 0 || n == 1 + + # recursive case + return fibonacci(n - 2) + fibonacci(n - 1) # return fib(6) + fib(7) => 8 + 13 => 21 end diff --git a/lib/super_digit.rb b/lib/super_digit.rb index 33e367f..658c462 100644 --- a/lib/super_digit.rb +++ b/lib/super_digit.rb @@ -1,9 +1,10 @@ # Superdigit -# Time Complexity - ? -# Space Complexity - ? +# Time Complexity - o(n) +# Space Complexity - o(n^2) def super_digit(n) - + return n if n < 10 + return super_digit(n.digits.sum) end