乘積最大子陣列

2021-10-05 00:27:30 字數 873 閱讀 6892

** leetcode :乘積最大子陣列

一開始我並沒有用dp

而是分情況討論的,即通過0將資料分為幾段,因為含有0的必定會使結果為0

然後就是考慮負數

在所分的每段裡計算乘積,如果負數個數為奇數,將最後出現的那段除掉,然後輸出最大值再比較

**非常長

但是可以跑過

長的我自己都不想看,沒臉看,看不明白啊,娘的

class

solution

} rst = i == j ? rst :

max(rst,

paraproduct

(nums, i, j));

// 長度為0無需

}return rst;

}int

paraproduct

(vector<

int>

& nums,

int low,

int high)

else

neg_tail = nums[i];}

mulp *

= nums[i];}

return

max(mulp,

max(

max(head_mulp, mulp/

(neg_head*head_mulp)),

max(tail_mulp, mulp/

(tail_mulp*neg_tail)))

);}}

};```## dp

乘積最大子陣列

給你乙個整數陣列 nums 請你找出陣列中乘積最大的連續子陣列 該子陣列中至少包含乙個數字 並返回該子陣列所對應的乘積。示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,3,2 輸出 12 解釋 子陣列 2,3,2 有最大乘積 12。對於每個元素,我...

最大子陣列乘積

題目鏈結 動態規劃的典型題目,這道題實際上是最大連續子陣列和的乙個高階版本。這道題的難點在於,這裡要同時構建兩個輔助陣列。f n f n f n 代表從區間 0,n 0,n 0,n 內,以n為結尾的最大乘積。與之相對的,g n g n g n 代表從區間 0,n 0,n 0,n 內,以n為結尾的最小...

乘積最大子陣列

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