Skip to content

Commit 4fdb22f

Browse files
committed
declass
1 parent 6beb0ad commit 4fdb22f

File tree

1 file changed

+47
-45
lines changed

1 file changed

+47
-45
lines changed

Fibonacci Number - Leetcode 509/Fibonacci Number - Leetcode 509.py

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,70 +2,72 @@
22

33
# Time: O(2^n)
44
# Space: O(n)
5-
class Solution:
6-
def fib(self, n: int) -> int:
7-
if n == 0:
8-
return 0
9-
elif n == 1:
10-
return 1
11-
else:
12-
return self.fib(n-1) + self.fib(n-2)
5+
6+
def fib(n: int) -> int:
7+
if n == 0:
8+
return 0
9+
elif n == 1:
10+
return 1
11+
else:
12+
return fib(n-1) + fib(n-2)
1313

1414

1515
# Top Down Memoized
1616

1717
# Time: O(n)
1818
# Space: O(n)
19-
class Solution:
20-
def fib(self, n: int) -> int:
21-
memo = {0:0, 1:1}
2219

23-
def f(x):
24-
if x in memo:
25-
return memo[x]
26-
else:
27-
memo[x] = f(x-1) + f(x-2)
28-
return memo[x]
29-
30-
return f(n)
20+
def fib2(n: int) -> int:
21+
memo = {0:0, 1:1}
22+
23+
def f(x):
24+
if x in memo:
25+
return memo[x]
26+
else:
27+
memo[x] = f(x-1) + f(x-2)
28+
return memo[x]
29+
30+
return f(n)
3131

3232

3333
# Bottom Up Tabulation
3434

3535
# Time: O(n)
3636
# Space: O(n)
37-
class Solution:
38-
def fib(self, n: int) -> int:
39-
if n == 0:
40-
return 0
41-
if n == 1:
42-
return 1
4337

44-
dp = [0] * (n+1)
45-
dp[0] = 0
46-
dp[1] = 1
38+
def fib3(n: int) -> int:
39+
if n == 0:
40+
return 0
41+
if n == 1:
42+
return 1
43+
44+
dp = [0] * (n+1)
45+
dp[0] = 0
46+
dp[1] = 1
4747

48-
for i in range(2, n+1):
49-
dp[i] = dp[i-2] + dp[i-1]
48+
for i in range(2, n+1):
49+
dp[i] = dp[i-2] + dp[i-1]
5050

51-
return dp[n]
51+
return dp[n]
5252

5353

5454
# Bottom Up Constant Space
5555

5656
# Time: O(n)
5757
# Space: O(1)
58-
class Solution:
59-
def fib(self, n: int) -> int:
60-
if n == 0:
61-
return 0
62-
if n == 1:
63-
return 1
64-
65-
prev = 0
66-
cur = 1
67-
68-
for i in range(2, n+1):
69-
prev, cur = cur, prev+cur
70-
71-
return cur
58+
59+
def fib4(n: int) -> int:
60+
if n == 0:
61+
return 0
62+
if n == 1:
63+
return 1
64+
65+
prev = 0
66+
cur = 1
67+
68+
for i in range(2, n+1):
69+
prev, cur = cur, prev+cur
70+
71+
return cur
72+
73+
print(fib4(10))

0 commit comments

Comments
 (0)