LC152---乘积最大子数组
152. 乘积最大子数组
给你一个整数数组 nums
,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。
输入: [2,3,-2,4]
输出: 6
解释: 子数组 [2,3] 有最大乘积 6。
输入: [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组
遍历数组时计算当前最大值,不断更新
令imax为当前最大值,则当前最大值为
imax = max(imax * nums[i], nums[i])
由于存在负数,那么会导致最大的变最小的,最小的变最大的。因此还需要维护当前最小值
imin = min(imin * nums[i], nums[i])
当负数出现时则imax与imin进行交换再进行下一步计算
时间复杂度:
O(n)
package com.nie.o2;/***@auth wenzhao*@date 2021/2/22 18:58*/public class LEE152 {public int maxProduct(int[] nums) {int max = Integer.MIN_VALUE;int imax = 1;int imin = 1;for (int i = 0; i < nums.length; i++) {if (nums[i] < 0) {int temp = imax;imax = imin;imin = temp;}imax = Math.max(imax * nums[i], nums[i]);imin = Math.min(imin * nums[i], nums[i]);max = Math.max(max, imax);}return max;}
}
LC152---乘积最大子数组相关推荐
- 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 解释: 子数组 ...
- 乘积最大子数组—leedcode152
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2 ...
- 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 解 ...
最新文章
- 【OI】WERTYU UVa 10082
- 【元气云妹】有趣有料的云吞铺子,来一碗吗?
- 批处理删除编译产生的多余文件
- C/S和B/S的区别
- 【编译原理】语言的定义
- 定时跑视图往另外一张表添加数据_程序猿删库跑路示例
- WordPress插件-WBOLT热门关键词推荐插件v1.3.0 Pro绿色版
- c++中int double 与char,string之间的转换
- lede 内核 单 编_openwrt和lede有何区别?
- 三星android p内测,两年前老机重生!三星开启Galaxy C9 Pro升级安卓8.0内测
- maven的scm插件介绍及使用示例
- linux下thinkpad X1 carbon 2018 电源管理
- 英语六级翻译整理【未更新完】
- eliteadmin网页后台管理模板简介
- PHPer都应该关注的服务端性能问题–听云Server试用笔记
- 面向对象之多态【向上转型与向下转型】
- IntelliJ IDEA 如何配置MySQL数据库
- [Android/Linux]-1.power_supply框架初识
- java毕业设计SEOUL设计师品牌代购商城Mybatis+系统+数据库+调试部署
- Z-INDEX: 999