博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
152. Maximum Product Subarray
阅读量:6415 次
发布时间:2019-06-23

本文共 1252 字,大约阅读时间需要 4 分钟。

Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.

Example 1:

Input: [2,3,-2,4]Output: 6Explanation: [2,3] has the largest product 6.

Example 2:

Input: [-2,0,-1]Output: 0Explanation: The result cannot be 2, because [-2,-1] is not a subarray.

难度:medium

题目:给定整数数组,找出乘积最大的子数组。

思路:结合最大子数组和,这里用两个变量分别记下包含当前元素的最大乘积和最小乘积,因为下一个元素正负不定。

Runtime: 2 ms, faster than 74.69% of Java online submissions for Maximum Product Subarray.

Memory Usage: 37.6 MB, less than 100.00% of Java online submissions for Maximum Product Subarray.

public class Solution {    public int maxProduct(int[] nums) {        if (null == nums || nums.length < 1) {            return 0;        }                int maxVal = nums[0];        int curMaxVal = nums[0], curMinVal = nums[0];        for (int i = 1; i < nums.length; i++) {            int pCurMinVal = curMinVal;            int pCurMaxVal = curMaxVal;            curMaxVal = Math.max(Math.max(nums[i], curMaxVal * nums[i]), pCurMinVal * nums[i]);            curMinVal = Math.min(Math.min(nums[i], curMinVal * nums[i]), pCurMaxVal * nums[i]);                        maxVal = Math.max(maxVal, curMaxVal);        }                return maxVal;    }}

转载地址:http://mwcra.baihongyu.com/

你可能感兴趣的文章
Debian允许root用户登录
查看>>
C++ - this指针
查看>>
Google Test and Google Mock Introduction
查看>>
linux的文件系统
查看>>
上云利器,K8S应用编排设计器之快到极致
查看>>
袋鼠云服务案例系列 | 从DB2到MySQL,某传统金融平台的互联网转型之路
查看>>
RealServer配置脚本
查看>>
九月份技术指标 华为交换机的简单配置
查看>>
马哥linux作业--第八周
查看>>
dubbo01
查看>>
python 写json格式字符串到文件
查看>>
分布式文件系统MogileFS
查看>>
电力线通信载波模块
查看>>
linux vim详解
查看>>
Java23种设计模式案例:策略模式(strategy)
查看>>
XML解析之DOM4J
查看>>
图解微服务架构演进
查看>>
SQL PATINDEX 详解
查看>>
一些常用的网络命令
查看>>
CSP -- 运营商内容劫持(广告)的终结者
查看>>