当前位置: 首页 > news >正文

LeetCode 152. 乘积最大子数组

 题目描述  

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

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

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

示例

示例 1:

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

示例 2:

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

解法

1.暴力

解题思路

       这是一个暴力解法,通过两层循环遍历所有可能的连续子数组,对于每个起始位置,计算从该位置开始的所有子数组的乘积,在计算过程中不断更新找到的最大乘积。

class Solution {
public:int maxProduct(vector<int>& nums) {int n = nums.size();int ans = nums[0];for(int i = 0;i < n;i ++){int m = nums[i];ans = max(m,ans);for(int j = i + 1;j < n;j ++){m *= nums[j];ans = max(m,ans);}}return ans;}
};

        时间复杂度O(N^2),空间复杂度O(1)

2.动态规划

解题思路:

        下面这段通过同时维护当前的最大乘积和最小乘积,利用负数相乘"负负得正"的特性,在单次遍历中动态跟踪所有可能的子数组乘积极值,从而高效找到全局最大乘积。

class Solution {
public:int maxProduct(vector<int>& nums) {int n = nums.size();int maxProd = nums[0];int minProd = nums[0];int result = nums[0];for (int i = 1; i < n; i++) {// 由于存在负数,需要同时维护最大和最小值int temp = maxProd;maxProd = max({nums[i], maxProd * nums[i], minProd * nums[i]});minProd = min({nums[i], temp * nums[i], minProd * nums[i]});result = max(result, maxProd);}return result;}
};

        时间复杂度O(N),空间复杂度O(1)

http://www.dtcms.com/a/609561.html

相关文章:

  • XTDIC-SPARK高速3D测量系统在电子产品跌落测试中的动态变形与可靠性评估
  • Java设计模式之原型模式深度解析
  • 设置网站关键词怎么做高端大气网站源码
  • 网站内链建设不可忽视的地方零基础短视频制作培训
  • php做企业网站管理系统网络营销的特征和功能
  • 【WSL】继承Windows科学流量
  • 可复用的 Vue 3 + TypeScript + Element Plus 的列表请求(列表页/表格)通用方案
  • 安装 Composer
  • 国外做名片的网站网站没有备案
  • 解决VMware Workstation虚拟机中添加硬盘时找不到U盘对应的磁盘physicaldrive3
  • 解决 “Could not locate zlibwapi.dll” 错误全流程分析
  • 第一模板ppt免费下载seo人员工作内容
  • 【高级机器学习】 7. 带噪声数据的学习:从 MLE 到 MAP
  • 横沥镇做网站北京公司注册地址出租
  • 北湖区网站建设哪个好中网互联网站建设
  • @Autowired和@Resource的区别
  • MongoDB | python操作MongoDB的基础使用
  • 【C++进阶】异常
  • 《非暴力沟通》马歇尔•卢森堡博士(美)
  • Rust 从零到精通:构建一个专业级命令行工具 greprs
  • 大足网站建设网络营销市场调研的内容
  • CSS3 分页技术解析
  • HTMLElement 与MouseEvent 事件对象属性详解
  • 建设网站都要学些什么手续拍卖网站模板下载
  • 【火语言RPA实战案例】根据ISBN 编码批量查询孔夫子书籍信息,自动导出本地 Excel(附完整脚本)
  • 从零开始理解状态机:C语言与Verilog的双重视角
  • 做软件常用的网站有哪些软件微信怎么做网站推广
  • 设计模式面试题(14道含答案)
  • [智能体设计模式] 第9章 :学习与适应
  • 肇庆市建设局网站西双版纳建设厅网站