您的位置:首页 > 编程语言 > Java开发

LeetCode:152. Maximum Product Subarray Java 子数组最大乘积

2016-09-05 13:52 567 查看
152. Maximum Product Subarray

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

For example, given the array 
[2,3,-2,4]
,

the contiguous subarray 
[2,3]
 has the largest product = 
6
.

子数组最大乘积(同类型题,改成double即可)

给定一个int类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。

例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以返回12。

public class Solution {
public int maxProduct(int[] nums) {
if (nums.length == 0) {
return 0;
}
int result = nums[0];
int max = nums[0];
int min = nums[0];
int maxTemp = 0;
int minTemp = 0;
for (int i = 1; i < nums.length; i++) {
maxTemp = Math.max(max * nums[i], min * nums[i]);
minTemp = Math.min(max * nums[i], min * nums[i]);
max = Math.max(maxTemp, nums[i]);
min = Math.min(minTemp, nums[i]);
result = Math.max(result, max);
}
return result;
}
}


类似问题:maximum
subarray
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: