LeetCode152:动态规划求最大乘积子数组
LeetCode152给你一个整数数组nums请你找出数组中乘积最大的非空连续 子数组该子数组中至少包含一个数字并返回该子数组所对应的乘积。测试用例的答案是一个32-位整数。请注意一个只包含一个元素的数组的乘积是这个元素的值。示例 1:输入:nums [2,3,-2,4]输出:6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入:nums [-2,0,-1]输出:0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。Python解法贪心分段遍历class Solution: def maxProduct(self, nums: List[int]) - int: max_p nums[0] # 全局最大乘积初始为第一个元素 first_neg 0 # 记录分段里第一个负数的累计乘积0本段还没出现负数 pre_p 1 # 当前段连续乘积初始乘积基数1 for num in nums: pre_p pre_p * num # 累乘当前数字更新本段连续乘积 max_p max(max_p, pre_p) # 先拿当前总乘积更新最大值 # 情况1乘积为负且本段第一次出现负数 → 保存这个负数乘积 if pre_p 0 and first_neg 0: first_neg pre_p # 情况2本段已经有过负数现在又算出负乘积 # 删掉【第一个负数及前面所有数】只保留第一个负数之后的子数组乘积 elif pre_p 0: max_p max(max_p, int(pre_p / first_neg)) # 遇到0子数组被截断清空本段所有标记重新开新段 if num 0: pre_p 1 first_neg 0 return max_p以[2, -3, -4, -5, 6]为例展示过程核心逻辑Java解法贪心分段遍历public class Solution { public int maxProduct(int[] nums) { int max_p nums[0]; int first_neg 0; long pre_p 1; // long 防止乘积溢出 for (int num : nums) { pre_p pre_p * num; max_p Math.max(max_p, (int) pre_p); if (pre_p 0 first_neg 0) { first_neg (int) pre_p; } else if (pre_p 0) { int temp (int)(pre_p / first_neg); max_p Math.max(max_p, temp); } if (num 0) { pre_p 1; first_neg 0; } } return max_p; } }C解法贪心分段遍历class Solution { public: int maxProduct(vectorint nums) { int max_p nums[0]; int first_neg 0; long long pre_p 1; for (int num : nums) { pre_p * num; max_p max(max_p, (int)pre_p); if (pre_p 0 first_neg 0) { first_neg static_castint(pre_p); } else if (pre_p 0) { int temp static_castint(pre_p / first_neg); max_p max(max_p, temp); } if (num 0) { pre_p 1; first_neg 0; } } return max_p; } };

相关新闻

十年八十个版本,架构变革的真相

十年八十个版本,架构变革的真相

MySQL 5.7 系列:集中式架构下的“局部突围”(2014–2023)MySQL 5.7 虽然整体上仍是“一切以 ibdata1 为中心”,但在其 40 余个版本中,InnoDB 团队进行了多项前瞻性的模块化尝试,为后续彻底重构埋下伏笔。3.…

2026/6/28 2:33:14阅读更多 →
互信息链式法则的证明(P124302005陈政煜)

互信息链式法则的证明(P124302005陈政煜)

引言互信息链式法则刻画联合随机变量组与目标变量间的总互信息,可按观测顺序分解为逐变量增量条件互信息之和,是信息论中信息累积、多源信息分解的核心恒等式。前提定义与公式二元标准形式设离散随机变量 X1,X2,Y,联合互信息满足:…

2026/6/28 2:33:14阅读更多 →
OpenCVSharp:使用MOG进行运动物体识别

OpenCVSharp:使用MOG进行运动物体识别

目录 效果 实现 效果 动态效果: 实现 运动物体检测是计算机视觉中的一个重要应用,广泛应用于安防监控、交通分析、人机交互等领域。本文将详细介绍如何使用OpenCVSharp中的MOG(Mixture of Gaussians)算法实现运动物体检测&…

2026/6/28 2:28:14阅读更多 →
【Ambari Plus】Step8—MariaDB 初始化

【Ambari Plus】Step8—MariaDB 初始化

Step8—MariaDB 初始化 Ambari Server 后面会把元数据写入 MariaDB,所以数据库要提前准备好。这一步只处理 MariaDB 服务本身:安装、字符集、监听地址、root 密码和远程连通验证。Ambari 专用库和专用用户放到 Step9 再创建。 本文只在核心节点 hadoop1.…

2026/6/28 4:08:18阅读更多 →
别急着教 Agent 思考,先喂它吃口干净的:ETL 入门

别急着教 Agent 思考,先喂它吃口干净的:ETL 入门

别急着教 Agent 思考,先喂它吃口干净的:ETL 入门 摘要:很多人一上来就盯着 Agent 的规划、决策、反思,却把更底下那层忘了:数据到底干不干净。ETL 在 Agent 时代一点都不过时,反而更要命。传统程序吃到脏数…

2026/6/28 4:08:18阅读更多 →
熬夜压力大白发越来越多?科学解析与营养干预指南

熬夜压力大白发越来越多?科学解析与营养干预指南

熬夜压力大白发越来越多?这是很多当代成年人都会遇到的头发问题,从临床营养角度来看,这种现象确实和长期的不良生活状态直接相关,大多是毛囊核心营养缺口导致黑色素合成不足引发的,通过科学的营养补充可以有效干预改善…

2026/6/28 4:08:18阅读更多 →
【网络安全】svn信息泄漏

【网络安全】svn信息泄漏

一、svn介绍SVN,全称为 Subversion,是一个开源的集中式版本控制系统(CVCS)。在 Git 彻底统治开源界之前,SVN 曾是软件开发团队进行代码管理和协同开发的绝对主流工具。结合你正在使用 dvcs-ripper 进行安全测试的背景&…

2026/6/28 4:08:18阅读更多 →
不定积分不是导数逆向计算,是沿着螺旋轨迹反向累加全部无穷小微观生长单元,还原完整宏观脉络-《全域数学vs传统数学:人类文明进阶200讲》第53讲 高中通俗版逐字稿

不定积分不是导数逆向计算,是沿着螺旋轨迹反向累加全部无穷小微观生长单元,还原完整宏观脉络-《全域数学vs传统数学:人类文明进阶200讲》第53讲 高中通俗版逐字稿

《全域数学vs传统数学:人类文明进阶200讲》第53讲 高中通俗版逐字稿 讲次: 第53讲 主题: 不定积分不是导数逆向计算,是沿着螺旋轨迹反向累加全部无穷小微观生长单元,还原完整宏观脉络 对标课本知识点: 不…

2026/6/28 4:08:18阅读更多 →
湖北香樟好不好?踩过死苗返工坑,5年采购商总结5条避坑干货

湖北香樟好不好?踩过死苗返工坑,5年采购商总结5条避坑干货

做苗木采购5年,被问得最多的问题之一就是“湖北香樟好不好”。说实话,作为长江流域原生的乡土树种,湖北香樟本身冠幅饱满、气候适配性强,正常移栽成活率能到90%以上,是市政、地产项目的稳妥选择。 但我前前后后踩过的香…

2026/6/28 4:03:18阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →