[LintCode/LeetCode] Maximum Product Subarray

news/2024/6/18 3:37:01 标签: 数据结构与算法

Problem

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

Example

For example, given the array [2,3,-2,4], the contiguous subarray [2,3] has the largest product = 6.

Note

这是一道简单的动规题目,同步更新min[]数组解决了nums[i]为负数的问题。即使是求最小乘积子序列,也可以通过取res和min[i]的最小值获得。

Solution

public class Solution {
    public int maxProduct(int[] nums) {
        int len = nums.length;
        int[] max = new int[len];
        int[] min = new int[len];
        int res = max[0] = min[0] = nums[0];
        for (int i = 1; i < len; i++) {
            if (nums[i] >= 0) {
                max[i] = Math.max(nums[i], max[i-1]*nums[i]);
                min[i] = Math.min(nums[i], min[i-1]*nums[i]);
            }
            else {
                max[i] = Math.max(nums[i], min[i-1]*nums[i]);
                min[i] = Math.min(nums[i], max[i-1]*nums[i]);
            }
            res = Math.max(res, max[i]);
        }
        return res;
    }
}

http://www.niftyadmin.cn/n/548028.html

相关文章

github打不开_怎么把自己做的网页托管在github上

&#xfeff; * 没有域名和服务器的前提下&#xff0c;怎么可以访问到我们的网页呢&#xff1f; 可以把网页代码托管在github&#xff0c;同样可以以站点的方式访问。 实践网址示例&#xff1a; https://411forget.github.io/shufa.github.io/1、准备条件注册一个github账号安装…

php mysql 5.7集成_phpstudy2018集成环境中,mysql5.5.*升级到5.7.*方法

因为测试环境的mysql版本和本地版本不一样&#xff0c;所以为了和测试环境同步&#xff0c;将本地环境升级到5.7以上的版本。我升级的版本是5.7.26第一步&#xff1a;找到本地安装的phpStudy2018安装的具体位置。(我安装的是在D:\phpstudy\)进入D:\phpStudy\PHPTutirail&#x…

周活动总结表 3/26

周活动总结表 姓名&#xff1a;黄伟鹏 日期&#xff1a;2016.3.26 日期/任务听课编程阅读书籍日总计周日&#xff08;3.20&#xff09;0000周一20.50.53周二0000周三00.50.51周四0000周五0011周六0516周总结26311日期开始时间结束时…

hdf5安装_国产CFD开源软件OneFLOW在Ubutntu下的编译安装

作为国产计算流体力学的开源软件&#xff0c;OneFLOW本身是跨平台的&#xff0c;所以在使用外部库上是慎之又慎&#xff0c;如果不能跨平台的库一概不选&#xff0c;无论这个库效果有多好。目前编译OneFLOW所需要的库都是基本上科学计算必须的。其中MPI库是进行大规模并行计算所…

写出python的pymysql模块使用流程_Python中操作mysql的pymysql模块详解

前言pymsql是Python中操作MysqL的模块&#xff0c;其使用方法和MysqLdb几乎相同。但目前pyMysqL支持python3.x而后者不支持3.x版本。本文测试python版本&#xff1a;2.7.11。MysqL版本&#xff1a;5.6.24一、安装pip3 install pyMysqL二、使用操作1、执行sql#!/usr/bin/env pyt…

微信公众平台开发(112) 微信卡券

关键字&#xff1a;微信公众平台 微信卡券 团购券 代金券 折扣券 礼品券(兑换券) 优惠券 导入code 核查code 修改库存 群发卡券 通过卡券货架投放卡券 创建二维码投放 核销卡券 查询卡券 微信买单 删除卡券 设置卡券失效 拉取卡券概况数据 获取免费券数据 拉取会员卡数据 朋友…

tinymce富文本实现页面分页_Django----富文本插件

富文本:Rich Text Format&#xff08;RTF&#xff09;&#xff0c;是有微软开发的跨平台文档格式&#xff0c;大多数的文字处理软件都能读取和保存RTF文档&#xff0c;其实就是可以添加样式的文档&#xff0c;和HTML有很多相似的地方tinymce 插件安装django的插件&#xff1a; …

java中的异常_java中的异常和处理详细理解

异常是程序中的一些错误&#xff0c;但并不是所有的错误都是异常&#xff0c;并且错误有时候是可以避免的。比如说&#xff0c;你的代码少了一个分号&#xff0c;那么运行出来结果是提示是错误 java.lang.Error&#xff1b;如果你用System.out.println(11/0)&#xff0c;那么你…