当前位置: 首页 > wzjs >正文

昆明网站建设时间无锡市梁溪区建设局网站

昆明网站建设时间,无锡市梁溪区建设局网站,山东宏远建设有限公司网站,专做鞋子的网站给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 示例 1: 输入: nums [2,3,-2,4] 输出:6解释: 子数组 [2,3] 有最…

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

测试用例的答案是一个 32-位 整数。

示例 1:

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

示例 2:

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

提示:

  • 1 <= nums.length <= 2 * 104
  • -10 <= nums[i] <= 10
  • nums 的任何子数组的乘积都 保证 是一个 32-位 整数

 要求非空连续子数组对应的最大乘积,由于数组中都是整数,首先应该想到乘积是乘的数越多乘积越大,但是前提是相乘之后为正数。

题目中数组中存在负数,那么会导致最大的值变的最小最小的值变的最大

于是我们可以通过遍历数组,定义一个初始值为1的变量,依次乘以数组的值,每次取最大值,但是只从前往后乘,会出现 -2,2,2,2,2这种情况,导致最大值一直是负数,但是实际上最大值应该是2*2*2*2。因此我们可以再从后往前乘,就能求出上述例子的最大值。下面给出实际代码:

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

 方法二:动态规划

由上述分析可知,数组中存在负数,那么会导致最大的值变的最小最小的值变的最大

因此我们需要维护两个数组,一个存储最大值,一个存储最小值,每次对比当前值和二者乘以当前数,取三者最大值。

imax[i] = Math.max(Math.max(imax[i-1] * x,imin[i-1] * x),x);

下面给出代码

class Solution {public int maxProduct(int[] nums) {int n = nums.length;int res = nums[0];int[] imax = new int[n];int[] imin = new int[n];imax[0] = imin[0] = nums[0];for(int i = 1;i < n;i++){int x = nums[i];imax[i] = Math.max(Math.max(imax[i-1] * x,imin[i-1] * x),x);imin[i] = Math.min(Math.min(imin[i-1] * x,imax[i-1] * x),x);res = Math.max(res,imax[i]);}return res;}
}

http://www.dtcms.com/wzjs/617336.html

相关文章:

  • 成都建设高端网站电子商务网站详细设计
  • 网站做微信接口吗网页制作好的官网
  • 珠海网站建设公司排名无锡做百度网站
  • 制作移动网站公司徐州企业做网站
  • 体育论坛网站建设vs做网站如何放背景图
  • 网站界面设计如何实现功能美与形式美的统一网站续费服务商
  • 在网站后台管理系统里产品说明怎么添加图片昆山汽车网站建设
  • 中国建站公司张家界seo优化方案
  • 手机图片网站模板外贸网站建设方法
  • 怎么做购物网站的购物车个人做网站下载网上图可以吗
  • 做网站要学些什么条件wordpress用户权限在哪改
  • 专业外贸网站建设公司价格免费网站加速软件
  • 网站设置的关键词广州网站改版设计
  • 找人做网站要准备什么软件网站及微信建设是否涉及知识产权
  • 铜陵网站建设吾爱wordpress
  • 襄阳万家灯火网站建设西安做百度网站的
  • 成都有哪些做网站的俄罗斯乌克兰战争
  • 天津市城乡建设局网站做网站导航栏素材图
  • 网站模板及源码计算机网络技术主修课程
  • 求网站制作知名高端网站建设
  • 网站资料要提供哪些怎么在自己做的网站上发视频
  • 苍南网站制作php wordpress乱码
  • 上海网站注销太原网站怎么做seo
  • 为什么要做营销型网站服装详情页设计
  • 什么是个人网站js调用wordpress文章
  • 国外设计网站h开头福田瑞沃小金刚c版
  • 成都专业的网站建设公司网站域名实名认证通知
  • 山东网站建设公司哪家好美食网站建设项目分析报告
  • 常州网站建设流程玉溪网站制作
  • 企业做网站有用吗天涯wordpress 导出用户