news 2026/3/2 23:54:07

LeetCode热题100--152. 乘积最大子数组--中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode热题100--152. 乘积最大子数组--中等

题目

给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续 子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

测试用例的答案是一个 32-位 整数。

请注意,一个只包含一个元素的数组的乘积是这个元素的值。

示例 1:
输入: nums = [2,3,-2,4]
输出: 6
解释: 子数组 [2,3] 有最大乘积 6。

示例 2:
输入: nums = [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

题解

classSolution{publicintmaxProduct(int[]nums){intmax=Integer.MIN_VALUE,imax=1,imin=1;for(inti=0;i<nums.length;i++){if(nums[i]<0){inttmp=imax;imax=imin;imin=tmp;}imax=Math.max(imax*nums[i],nums[i]);imin=Math.min(imin*nums[i],nums[i]);max=Math.max(max,imax);}returnmax;}}

解析

出自:画解算法:152. 乘积最大子序列

classSolution{publicintmaxProduct(int[]nums){// 初始化全局最大乘积为最小整数值(用于后续更新)intmax=Integer.MIN_VALUE;// imax:以当前元素结尾的子数组的最大乘积// imin:以当前元素结尾的子数组的最小乘积(用于处理负数)intimax=1,imin=1;// 遍历数组中的每一个元素for(inti=0;i<nums.length;i++){// 如果当前数字是负数,交换 imax 和 imin// 原因:负数会使最大值变最小,最小值变最大if(nums[i]<0){inttmp=imax;imax=imin;imin=tmp;}// 更新以当前元素结尾的最大乘积:// 要么延续之前的子数组(imax * nums[i]),要么从当前元素重新开始(nums[i])imax=Math.max(imax*nums[i],nums[i]);// 更新以当前元素结尾的最小乘积(同样考虑重新开始 or 延续)imin=Math.min(imin*nums[i],nums[i]);// 更新全局最大乘积(记录历史最大值)max=Math.max(max,imax);}// 返回整个数组中子数组的最大乘积returnmax;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/2 0:05:20

升级指南:将旧版TensorFlow代码迁移到最新镜像环境

升级指南&#xff1a;将旧版TensorFlow代码迁移到最新镜像环境 在深度学习项目日益复杂的今天&#xff0c;一个常见的场景是&#xff1a;你接手了一个几年前用 TensorFlow 1.x 编写的模型仓库&#xff0c;文档不全、依赖模糊&#xff0c;而在本地运行时却频频报错——“tf.Sess…

作者头像 李华
网站建设 2026/3/1 21:12:28

如何为TensorFlow镜像中的模型添加注释和文档说明

如何为TensorFlow镜像中的模型添加注释和文档说明 在AI系统逐渐从实验原型走向生产部署的今天&#xff0c;一个训练得再精准的模型&#xff0c;如果缺乏清晰的使用说明和结构化元信息&#xff0c;就可能变成团队内部的“黑盒资产”——没人敢改、难交接、维护成本高。尤其是在容…

作者头像 李华
网站建设 2026/2/15 18:48:15

AI智能体记忆全解析:从RAG到智能体化RAG再到记忆管理的演进之路!

在学习 AI 智能体&#xff08;AI Agents&#xff09;的记忆相关知识时&#xff0c;被各种新术语搞得不知所措。一开始是 “短期记忆” 和 “长期记忆”&#xff0c;后来又出现了 “程序性记忆”、“情景记忆” 和 “语义记忆”&#xff0c;这就更混乱了。但等等&#xff0c;“语…

作者头像 李华
网站建设 2026/2/28 17:09:28

基于飞思卡尔MC9S12XEP100的新能源汽车整车控制器VCU方案分享

微处理器/微控制器/单片机新能源汽车 电动汽车整车控制器 VCU 含canbootloader 基于飞思卡尔MC9S12XEP100整车控制器 VCU方案 1&#xff1a;C源文件&#xff0c;底层驱动控制策略 2&#xff1a;程序变量表格&#xff0c;Execl文件&#xff1b;can 通讯发送接收数据对应&#x…

作者头像 李华
网站建设 2026/2/27 10:11:02

【剪映小助手源码精讲】第33章:草稿缓存机制

第33章&#xff1a;草稿缓存机制 33.1 概述 草稿缓存机制是剪映小助手的性能优化组件&#xff0c;用于缓存草稿文件对象&#xff0c;避免重复加载和解析草稿文件。该机制基于Python的collections.OrderedDict实现LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&a…

作者头像 李华
网站建设 2026/3/1 14:47:20

【图像处理基石】现代图像处理发端与物理关联算法详解:从原理到Python代码上手

在计算机视觉、人工智能、医学影像等领域蓬勃发展的今天,图像处理早已成为核心支撑技术。但很多开发者在使用各类图像处理算法时,往往只关注API调用,却忽略了其背后的历史脉络和物理本质。本文将先厘清现代图像处理的发端,再深度剖析那些与物理学直接绑定的经典算法,最后通…

作者头像 李华