題目描述
給定一個整數(shù)數(shù)組 nums 扔水,找出一個序列中乘積最大的連續(xù)子序列(該序列至少包含一個數(shù))。
示例 1:
輸入: [2,3,-2,4]
輸出: 6
解釋: 子數(shù)組 [2,3] 有最大乘積 6。
示例 2:
輸入: [-2,0,-1]
輸出: 0
解釋: 結果不能為 2, 因為 [-2,-1] 不是子數(shù)組。
知識點
動態(tài)規(guī)劃
Qiang的思路
class Solution:
def maxProduct(self, nums: List[int]) -> int:
mi=[nums[0]]
ma=[nums[0]]
for i in range(1, len(nums)):
if nums[i]==0:
mi.append(0)
ma.append(0)
elif nums[i]>0:
mi.append(min(mi[i-1]*nums[i], nums[i]))
ma.append(max(ma[i-1]*nums[i], nums[i]))
else:
mi.append(min(ma[i-1]*nums[i], nums[i]))
ma.append(max(mi[i-1]*nums[i], nums[i]))
return max(ma)
作者原創(chuàng)歇攻,如需轉載及其他問題請郵箱聯(lián)系:lwqiang_chn@163.com。
個人網(wǎng)站:https://www.myqiang.top梆造。