summaryrefslogtreecommitdiff
path: root/SI/Resource/Dynamic Programming
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2024-04-29 22:06:12 -0400
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2024-04-29 22:06:12 -0400
commit4d53fa14ee0cd615444aca6f6ba176e0ccc1b5be (patch)
tree4d9f0527d9e6db4f92736ead0aa9bb3f840a0f89 /SI/Resource/Dynamic Programming
init
Diffstat (limited to 'SI/Resource/Dynamic Programming')
-rw-r--r--SI/Resource/Dynamic Programming/fibonacci.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/SI/Resource/Dynamic Programming/fibonacci.py b/SI/Resource/Dynamic Programming/fibonacci.py
new file mode 100644
index 0000000..9c6b4fd
--- /dev/null
+++ b/SI/Resource/Dynamic Programming/fibonacci.py
@@ -0,0 +1,17 @@
+# fibonacci
+# time complexity: O(n^2)
+# space complexity: O(n)
+def fib(n):
+ return 1 if n <= 2 else fib(n - 1) + fib(n - 2)
+
+
+# memoization
+# time complexity: O(n)
+# space complexity: O(n)
+def fib_memo(n, memo={}):
+ if n <= 2:
+ return 1
+ if n in memo:
+ result = memo[n]
+ result = fib_memo(n - 1, memo[n]) + fib_memo(n - 2, memo[n])
+ return result