生活随笔
收集整理的這篇文章主要介紹了
乘积的最大子数组
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給你一個整數(shù)數(shù)組 nums ,請你找出數(shù)組中乘積最大的連續(xù)子數(shù)組(該子數(shù)組中至少包含一個數(shù)字),并返回該子數(shù)組所對應(yīng)的乘積。
輸入: [2,3,-2,4]
輸出: 6
解釋: 子數(shù)組 [2,3] 有最大乘積 6。
輸入: [-2,0,-1]
輸出: 0
解釋: 結(jié)果不能為 2, 因為 [-2,-1] 不是子數(shù)組。
class Solution
{
public
:int maxProduct(vector
<int>& nums
) {int res
= INT_MIN
;for(int start
=0; start
<nums
.size(); start
++) {int temp_res
= 1;for (int end
=start
; end
>=0; end
--) {temp_res
*= nums
[end
];if (temp_res
> res
) {res
= temp_res
;}}}return res
;}
};
class Solution
{
public
:int maxProduct(vector
<int>& nums
) {vector
<int> maxF(nums
), minF(nums
);for (int i
= 1; i
< nums
.size(); ++i
) {maxF
[i
] = max(maxF
[i
- 1] * nums
[i
], max(nums
[i
], minF
[i
- 1] * nums
[i
]));minF
[i
] = min(minF
[i
- 1] * nums
[i
], min(nums
[i
], maxF
[i
- 1] * nums
[i
]));}return *max_element(maxF
.begin(), maxF
.end());}
};
來源:力扣(LeetCode)
總結(jié)
以上是生活随笔為你收集整理的乘积的最大子数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。