-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path[LeetCode] 509. Fibonacci Number.py
88 lines (53 loc) · 1.29 KB
/
[LeetCode] 509. Fibonacci Number.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
class Solution:
def fib(self, n: int) -> int:
if n < 2:
return n
prev2 = 0
prev = 1
now = 0
for i in range(2,n+1): # n+1-2
# mem F(2) ~ F(n-1)
now = prev + prev2
return now
'''
0 .test
n : 3
i
0 1 2
mem : [0,1,1]
F(n) = F(n-1) + F(n-2)
now prev + prev2
1. problem
- fibo
- F(n) = F(n-1) + F(n-2)
- F(0) = 0 / F(1)= 1
2. TC
tc1)
n : 0
res : 0
tc2)
n : 1
res : 1
tc3)
n : 2
res : F(0) + F(1) = 0 + 1 = 1
tc4)
n : 3
res : F(1) + F(2) = 1 + 1 = 2
3. brain storming
F(n) = F(n-1) + F(n-2)
0-n
tc4)
n : 3
F(0), F(1), F(2)
tc5)
n : 5
F(0), F(1), F(2), F(3), F(4), F(5)
mem = [-1] * n
mem[0] = 0
mem[1] = 1
for i in range(2,n):
# mem F(2) ~ F(n-1)
mem[i] = mem[i-1] + mem[i-2]
return mem[n-1] + mem[n-2]
'''