给我一段java代码 求一个整数数组乘积最大子数组
时间: 2024-05-06 18:20:34 浏览: 85
以下是一个求整数数组乘积最大子数组的Java代码:
```java
public int maxProduct(int[] nums) {
int maxProduct = nums[0];
int minProduct = nums[0];
int result = nums[0];
for (int i = 1; i < nums.length; i++) {
int curr = nums[i];
int tempMax = Math.max(curr, Math.max(maxProduct * curr, minProduct * curr));
minProduct = Math.min(curr, Math.min(maxProduct * curr, minProduct * curr));
maxProduct = tempMax;
result = Math.max(result, maxProduct);
}
return result;
}
```
这个算法的核心思想是维护两个变量,一个是最大乘积,一个是最小乘积。在遍历数组的过程中,我们通过比较当前数值、最大乘积乘以当前数值、最小乘积乘以当前数值,来更新最大乘积和最小乘积。最后返回最大乘积即可。
阅读全文