Python 中的最大乘积子数组
pythonserver side programmingprogramming更新于 2025/11/22 19:56:17
假设我们有一个名为 nums 的整数数组,我们必须在数组(至少包含一个数字)中找到具有最大乘积的连续子数组。因此,如果数组为 [2,3,-2,4],则输出将为 6,因为连续子数组 [2,3] 具有最大乘积。
为了解决这个问题,我们将遵循以下步骤 −
- max_list := 大小为 nums 的列表,并用 0 填充
- min_list := 大小为 nums 的列表,并用 0 填充
- max_list[0] := nums[0] 和 min_list[0] := nums[0]
- 对于 i,范围为 1 到 nums 的长度
- max_list[i] = max_list[i - 1]*nums[i]、min_list[i - 1]*nums[i] 和 nums[i] 中的最大值
- min_list[i] = minof min_list[i - 1]*nums[i], nums[i], max_list[i - 1]*nums[i]
- 返回 max_list 的最大值
让我们看看下面的实现以便更好地理解 −
示例
class Solution(object): def maxProduct(self, nums): max_list = [0] * len(nums) min_list = [0] * len(nums) max_list[0] = nums[0] min_list[0] = nums[0] for i in range(1,len(nums)): max_list[i] = max(max(max_list[i-1]*nums[i],min_list[i-1]*nums[i]),nums[i]) min_list[i] = min(min(min_list[i-1]*nums[i],nums[i]),max_list[i-1]*nums[i]) return max(max_list) ob1 = Solution() print(ob1.maxProduct([2,3,-2,4,-5,-6,2]))
输入
[2,3,-2,4,-5,-6,2]
输出
240
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

