public class Solution {
public int maxProduct(int[] A) {
if(A==null || A.length ==0)return 0;
int len = A.length;
int []fn = new int[len];//保存到i位置最大的数
int []zn = new int[len];//最小的数,防止出现负数
int max=fn[0]=zn[0]=A[0];
for(int i=1; i<len; i++){
fn[i]=Math.max(Math.max(fn[i-1]*A[i],A[i]),zn[i-1]*A[i]);
zn[i]=Math.min(Math.min(zn[i-1]*A[i],A[i]),fn[i-1]*A[i]);
if(fn[i]>max){
max=fn[i];
}
}
return max;
}
}
【LeetCode】Maximum Product Subarray
最新推荐文章于 2020-02-02 17:32:16 发布