1414Output: 0
1515Explanation: 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