Skip to content

Commit d896489

Browse files
committed
Maximum Product Subarray
1 parent adb931e commit d896489

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

152-maximum-product-subarray.py

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,29 @@
1414
Output: 0
1515
Explanation: The result cannot be 2, because [-2,-1] is not a subarray.
1616
"""
17-
class Solution(object):
18-
def maxProduct(self, nums):
19-
"""
20-
:type nums: List[int]
21-
:rtype: int
22-
"""
23-
maxp = minp = res = nums[0]
24-
for i in range(1,len(nums)):
17+
class Solution:
18+
def maxProduct(self, nums: List[int]) -> int:
19+
max_prod = min_prod = res = nums[0]
20+
21+
for i in range(1, len(nums)):
2522
if nums[i] < 0:
26-
maxp, minp = minp, maxp
27-
maxp = max(nums[i], nums[i]*maxp)
28-
minp = min(nums[i], nums[i]*minp)
29-
res = max(res, maxp)
30-
return res
23+
max_prod, min_prod = min_prod, max_prod
24+
25+
max_prod = max(nums[i], nums[i] * max_prod)
26+
min_prod = min(nums[i], nums[i] * min_prod)
27+
res = max(res, max_prod)
28+
29+
return res
30+
31+
# TLE
32+
class Solution1:
33+
def maxProduct(self, nums: List[int]) -> int:
34+
max_prod = float('-inf')
35+
36+
for i in range(len(nums)):
37+
cur_prod = 1
38+
for j in range(i, len(nums)):
39+
cur_prod *= nums[j]
40+
max_prod = max(max_prod, cur_prod)
41+
42+
return max_prod

0 commit comments

Comments
 (0)