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

示例 1:

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

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

思路:

求乘积最大的子序列,不同于和最大的子序列,两个负数相乘是会得到正数的,所以在遍历数组nums时,需要存储最大和最小的子序列乘积。然后每遍历一个元素,更新一次。

我们只要记录前i的最小值, 和最大值, 那么 dp[i] = max(nums[i] * pre_max, nums[i] * pre_min, nums[i]), 这里0 不需要单独考虑, 因为当0相乘不管最大值和最小值,都会置0

class Solution {
public:int maxProduct(vector<int>& nums) {if(nums.empty()) return 0;int n = nums.size();int premax = nums[0];int premin = nums[0];int result = nums[0];for(int i=1;i<n;++i){int maxval = max(premax*nums[i],max(premin*nums[i],nums[i]));int minval = min(premax*nums[i],min(premin*nums[i],nums[i]));result = max(result,maxval);premin = minval;premax = maxval;}return result;}
};

乘积最大子数组—leedcode152相关推荐

  1. 152. 乘积最大子数组

    Title 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: ...

  2. 动态规划——乘积最大子数组(Leetcode 152)

    题目选自Leetcode 152. 乘积最大子数组 题目描述: 解题思路: 解题代码: class Solution { public:int maxProduct(vector<int> ...

  3. 最大连续子数组和 动态规划_每日LeetCode,乘积最大子数组

    152. 乘积最大子数组​leetcode-cn.com 给你一个整数数组nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: ...

  4. CodeTop097 乘积最大子数组

    乘积最大子数组 给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组 (该子数组中至少包含一个数字),并返回该子数组所对应的乘积 测试用例的答案是一个32位整数 子数组是数组的连续子序列. ...

  5. 算法-----------乘积最大子数组(Java版本)

    题目: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积.示例 1:输入: [2,3,-2,4] 输出: 6 解释: 子数组 ...

  6. leetcode152. 乘积最大子数组

    给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2 ...

  7. [Leedcode][JAVA][第152题][乘积最大子数组][动态规划]

    [问题描述][中等] 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积.示例 1:输入: [2,3,-2,4] 输出: 6 解 ...

  8. Leetcode--152. 乘积最大子数组(java)

    给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2 ...

  9. 152 乘积最大子数组(动态规划)

    1. 问题描述: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解 ...

最新文章

  1. 现存最古老计算机手册重见天日,比ENIAC要先进!
  2. drools规则中调用其它规则_简化机器学习中的关联规则
  3. 笔记-项目风险管理-风险应对
  4. 数据库-优化-数据库结构的优化-数据类型
  5. mysql 连续签到天数_新版签到活动明天上线,福利活动抢鲜看~
  6. c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法
  7. facade 门面 php,php设计模式之门面(Facade)模式
  8. iOS开发---设计素材篇2
  9. keybd_event、SendInput笔记
  10. java 可重入锁 clh_Java可重入锁原理
  11. python之logging模块简单用法
  12. 【深入JVM内核—原理、诊断与优化】第2期开课了
  13. Ubuntu MySQL 授权语句错误 ERROR 1064 (42000)
  14. 机械制图之平面图形的尺寸分析
  15. Java标识符、关键字、运算符
  16. Arcgis 地理配准步骤(底图校正)
  17. [转]TIF图像数据结构之研究
  18. 2022年二级建造师建设工程法规及相关知识考试每日一练及答案
  19. 铁道部网站登录难点分析
  20. 全球与中国制冷压缩机润滑油市场深度研究分析报告

热门文章

  1. mysql 导入sql脚本_mysql 导入 sql文件
  2. 日周月筛选器_举个栗子!Tableau 技巧(147):使用 动态参数 筛选到最新日期值...
  3. JavaScript event loop事件循环 macrotask与microtask
  4. Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别
  5. nginx反向代理下thinkphp、php获取不到正确的外网ip
  6. sql注入_1-8_宽字节注入
  7. 【数据结构与算法】之深入解析“零钱兑换”的求解思路与算法示例
  8. 【数据结构与算法】之深入解析“两两交换链表中的节点”的求解思路与算法示例
  9. HarmonyOS之将SVG文件转换为XML文件
  10. 2021年第十二届蓝桥杯 - 省赛 - C/C++大学A组 - D.路径