网站网站设计的公司,市场营销策划案的范文,wordpress主题always,网站空间过期给你一个整数数组 nums #xff0c;请你找出数组中乘积最大的连续子数组#xff08;该子数组中至少包含一个数字#xff09;#xff0c;并返回该子数组所对应的乘积。 示例 1:
输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2:
输入: [-2,0,-1] 输出…给你一个整数数组 nums 请你找出数组中乘积最大的连续子数组该子数组中至少包含一个数字并返回该子数组所对应的乘积。 示例 1:
输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2:
输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 思路每次如果nums[i]是负数交换最大最小值
imax max(imax * nums[i], nums[i]) 代码
class Solution { public int maxProduct(int[] nums) { int max -21474836472; //多一个符号最大变最小最小变最大 2 3 -2 -2 2 min:-12 max:1 max:24 minx:-12 int tmax1,tmin1; for(int i0;inums.length;i){ if(nums[i]0){ int t tmax; tmax tmin; tmin t; } tmax Math.max(nums[i],tmax*nums[i]); tmin Math.min(nums[i],tmin*nums[i]); max Math.max(max,tmax); } return max; }
}