152 乘積最大子陣列

2021-10-06 12:42:35 字數 1023 閱讀 4005

類似於53題最大子序和,給乙個整數陣列 nums ,找出陣列中乘積最大的連續子陣列(該子陣列中至少包含乙個數字),並返回該子陣列所對應的乘積。 乘積最大,連續子陣列

乘積最大的連續子陣列,使用動態規劃方法

class

solution

:def

maxproduct

(self,nums):if

not nums:

return

res=nums[0]

pre_max=nums[0]

pre_min=nums[0]

for num in nums[1:

]:cur_max=

max(pre_max*num , pre_min*num , num)

cur_min=

min(pre_max*num , pre_min*num , num)

res =

max(res , cur_max)

#多學習這種思路

pre_max = cur_max

pre_min = cur_min

return res

#方法二

class

solution

:def

maxproduct

(self,nums):if

not nums:

return

reverse_num = nums[::

-1]for i in

range(1

,len

(nums)):

nums[i]

*= nums[i-1]

or1#nums[i-1] !=0,則nums[i] *= nums[i-1] else nums[i] *= 1

reverse_num[i]

*=reverse_num[i-1]

or1return

max(nums+reverse_num)

#將兩個列表加起來

方法二參考鏈結

152 乘積最大子陣列

152.乘積最大子陣列 class solution def maxproduct self,nums list int int dp nums i for i in range len nums for j in range len nums max product dp 0 0 for i in...

152 乘積最大子陣列

給你乙個整數陣列 nums 請你找出陣列中乘積最大的連續子陣列 該子陣列中至少包含乙個數字 並返回該子陣列所對應的乘積。示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0 解釋 結果不能為 2,因為 2,1 不是子陣列。class s...

152 乘積最大子陣列

題目描述 給你乙個整數陣列 nums 請你找出陣列中乘積最大的連續子陣列 該子陣列中至少包含乙個數字 並返回該子陣列所對應的乘積。示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0 解釋 結果不能為 2,因為 2,1 不是子陣列。方法...