乘积最大子数组—leedcode152
给你一个整数数组 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相关推荐
- 152. 乘积最大子数组
Title 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: ...
- 动态规划——乘积最大子数组(Leetcode 152)
题目选自Leetcode 152. 乘积最大子数组 题目描述: 解题思路: 解题代码: class Solution { public:int maxProduct(vector<int> ...
- 最大连续子数组和 动态规划_每日LeetCode,乘积最大子数组
152. 乘积最大子数组leetcode-cn.com 给你一个整数数组nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: ...
- CodeTop097 乘积最大子数组
乘积最大子数组 给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组 (该子数组中至少包含一个数字),并返回该子数组所对应的乘积 测试用例的答案是一个32位整数 子数组是数组的连续子序列. ...
- 算法-----------乘积最大子数组(Java版本)
题目: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积.示例 1:输入: [2,3,-2,4] 输出: 6 解释: 子数组 ...
- leetcode152. 乘积最大子数组
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2 ...
- [Leedcode][JAVA][第152题][乘积最大子数组][动态规划]
[问题描述][中等] 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积.示例 1:输入: [2,3,-2,4] 输出: 6 解 ...
- Leetcode--152. 乘积最大子数组(java)
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2 ...
- 152 乘积最大子数组(动态规划)
1. 问题描述: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解 ...
最新文章
- 现存最古老计算机手册重见天日,比ENIAC要先进!
- drools规则中调用其它规则_简化机器学习中的关联规则
- 笔记-项目风险管理-风险应对
- 数据库-优化-数据库结构的优化-数据类型
- mysql 连续签到天数_新版签到活动明天上线,福利活动抢鲜看~
- c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法
- facade 门面 php,php设计模式之门面(Facade)模式
- iOS开发---设计素材篇2
- keybd_event、SendInput笔记
- java 可重入锁 clh_Java可重入锁原理
- python之logging模块简单用法
- 【深入JVM内核—原理、诊断与优化】第2期开课了
- Ubuntu MySQL 授权语句错误 ERROR 1064 (42000)
- 机械制图之平面图形的尺寸分析
- Java标识符、关键字、运算符
- Arcgis 地理配准步骤(底图校正)
- [转]TIF图像数据结构之研究
- 2022年二级建造师建设工程法规及相关知识考试每日一练及答案
- 铁道部网站登录难点分析
- 全球与中国制冷压缩机润滑油市场深度研究分析报告
热门文章
- mysql 导入sql脚本_mysql 导入 sql文件
- 日周月筛选器_举个栗子!Tableau 技巧(147):使用 动态参数 筛选到最新日期值...
- JavaScript event loop事件循环 macrotask与microtask
- Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别
- nginx反向代理下thinkphp、php获取不到正确的外网ip
- sql注入_1-8_宽字节注入
- 【数据结构与算法】之深入解析“零钱兑换”的求解思路与算法示例
- 【数据结构与算法】之深入解析“两两交换链表中的节点”的求解思路与算法示例
- HarmonyOS之将SVG文件转换为XML文件
- 2021年第十二届蓝桥杯 - 省赛 - C/C++大学A组 - D.路径