File tree Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ Solution1:
3
+ sliding window μΌ κ² κ°μ§λ§ ꡬνμ΄ μ΄λ €μ μΌλ¨ Brute Force λΆν° μ§νν©λλ€.
4
+ -> μκ° μ΄κ³Όλ‘ μ€ν¨
5
+
6
+ Time: O(n^2) = n(for) * n(for)
7
+ Space: O(n) = cur λ°°μ΄
8
+ """
9
+
10
+
11
+ class Solution :
12
+ def maxSubArray (self , nums : List [int ]) -> int :
13
+ n = len (nums )
14
+ max_sum = float (- inf )
15
+ for i in range (n ):
16
+ cur = []
17
+ cur_sum = 0
18
+ for j in range (i , n ):
19
+ cur_sum += nums [j ]
20
+ cur .append (nums [j ])
21
+ max_sum = max (max_sum , cur_sum )
22
+ return max_sum
23
+
24
+
25
+ """
26
+ Solution2:
27
+ Sliding Windowλ‘ ν μ μμκ±°λΌ μκ°νλλ° μ μλμμ΅λλ€.
28
+ """
29
+
30
+
31
+ class Solution :
32
+ def maxSubArray (self , nums : List [int ]) -> int :
33
+ n = len (nums )
34
+ max_sum = float (- inf )
35
+
36
+ l = 0
37
+ window = 0
38
+ for r in range (n ):
39
+ window += nums [r ]
40
+ max_sum = max (max_sum , window )
41
+ while max_sum < window :
42
+ l += 1
43
+
44
+ return max_sum
45
+
46
+
47
+ """
48
+ Solution3 - μκ³ λ¬λ :
49
+ μ루μ
μ ν΅ν΄ νμ΅νμ΅λλ€.
50
+ μ΄ν΄κ° μ΄λ €μ λ€μ νμ΄λ³Ό μμ μ
λλ€.
51
+
52
+ Time: O(n)
53
+ Space: O(1)
54
+ """
55
+
56
+
57
+ class Solution :
58
+ def maxSubArray (self , nums : List [int ]) -> int :
59
+ max_sum = nums [0 ]
60
+ cur_sum = 0
61
+ for num in nums :
62
+ cur_sum = max (cur_sum + num , num )
63
+ max_sum = max (cur_sum , max_sum )
64
+ return max_sum
You canβt perform that action at this time.
0 commit comments