類似於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 不是子陣列。方法...