乘積最大子串行

2021-09-25 21:11:01 字數 434 閱讀 9039

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

示例 1:

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

輸出: 6

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

示例 2:

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

輸出: 0

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

由於存在負數,那麼最大的數可能變最小的數,最小的數也可能變最大的數。所以設定兩個變數now_max,now_min記錄以num[i]為尾的子串行乘積的最大和最小值,當num[i]為負數,則先調換now_max和now_min的值,再計算此時的最大和最小值。

class

solution

return res;}}

;

乘積最大子串行

比如,序列 2,3,2,4 中乘積最大的子串行為 2,3 其乘積為6。方法一 自己一開始寫的方法比較麻煩。通過記錄陣列中元素為0的下標,然後以0為邊界,分割陣列,然後對每個分割後的陣列分別求最大乘積子串行,最後在所有的分割陣列的最大乘積子串行中取最大乘積。class solution int len...

最大子串行乘積

思路 以元素i結尾序列提供的最大正數記做 pos,最小負數記做 nag a n 大於零時 pos n max max value max 若n 1位置存在最小負數,更新 nag n nag n 1 a n a n 小於零時 pos n max max value max 更新 nag n min a...

乘積最大子串行

本道題要求我們從乙個找出乘積最大的連續子串行 該序列至少包含乙個數 首先,必須要滿足的條件是連續,那麼相比較我們之前做的最大子串行和來說,本題存在的乙個難點就是 乙個最大的乘積的連續序列乘以乙個負數後,就會變成最小的,同樣,本來是最小的乘積的連續序列乘以乙個負數後,有可能會變成最大的,如果參照最大子...