152 乘積最大子串行

2021-08-28 09:26:57 字數 745 閱讀 6899

給定乙個整數陣列 nums ,找出乙個序列中乘積最大的連續子串行(該序列至少包含乙個數)。

示例 1:

輸入: [2,3,-2,4]

輸出: 6

解釋: 子陣列 [2,3] 有最大乘積 6。

示例 2:

輸入: [-2,0,-1]

輸出: 0

解釋: 結果不能為 2, 因為 [-2,-1] 不是子陣列。

記錄每一處為止的列表乘積最大最小值,後一處乘積的最大最小值是關於前一處的最大最小值和本處的值的,每一處的最大最小值都是於前一處的最大值乘以本處值、前一處的最小值乘以本處值、本處值中取得。

class

solution

:def

maxproduct

(self, nums)

:"""

:type nums: list[int]

:rtype: int

"""res = nums[0]

min_,max_ = nums[0]

,nums[0]

index =

1for item in nums[1:

]:min_,max_ =

min(item,min_*item,max_*item)

,max

(item,min_*item,max_*item)

res =

max(res,max_)

return res

152 乘積最大子串行

給定乙個整數陣列 nums 找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0 解釋 結果不能為 2,因為 2,1 不是子陣列。如果要求不連續,把所有大於 0 的數字拿出來乘積...

152 乘積最大子串行

因為有負數和0的存在,使問題變得複雜了不少。用dp來做,而且要用兩個dp陣列,其中 1 f i 表示子陣列 0,i 範圍內並且一定包含nums i 數字的最大子陣列乘積,2 g i 表示子陣列 0,i 範圍內並且一定包含nums i 數字的最小子陣列乘積,3 初始化時f 0 和g 0 都初始化為nu...

152 乘積最大子串行

題目 給定乙個整數陣列 nums 找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0 解釋 結果不能為 2,因為 2,1 不是子陣列。動態規劃 defmaxproduct nu...