标签:rod 描述 时间 矩阵 ini 最小 math length class
给定数组,输出所有子数组的累积的最大值。
public class Main {
public static void main(String args[]) {
int[] arr= {-2,4,0,3,5,8,-1};
int maxProduct=getMaxProduct(arr);
System.out.println(maxProduct);
}
public static int getMaxProduct(int[] arr) {
int max=arr[0];
int min=arr[0];
int maxProduct=arr[0];
for(int i=1;i<arr.length;++i) {
max=getMax(max*arr[i],min*arr[i],arr[i]);
min=getMin(max*arr[i],min*arr[i],arr[i]);
maxProduct=Math.max(max,maxProduct);
}
return maxProduct;
}
public static int getMin(int... vals) {
int min=Integer.MAX_VALUE;
for(int val:vals) {
if(val<min) {
min=val;
}
}
return min;
}
public static int getMax(int... vals) {
int max=Integer.MIN_VALUE;
for(int val:vals) {
if(val>max) {
max=val;
}
}
return max;
}
}
[程序员代码面试指南]数组和矩阵问题-数组中子数组的最大累乘积
标签:rod 描述 时间 矩阵 ini 最小 math length class
原文地址:https://www.cnblogs.com/coding-gaga/p/10909279.html