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