java 最大乘积子阵列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 最大乘积子阵列相关的知识,希望对你有一定的参考价值。

import java.util.*;
public class MaxProductSubArray {
    public static void main(String args[]) {
        MaxProductSubArray maxProductSubArray = new MaxProductSubArray();
        int[][] input = {
          null,
          {},
          {-6,4,-5,8,-10,0,8},
          {40,0,-20,-10}
        };
        
        for(int i=0; i< input.length; i++) {
            System.out.println("Input: " + Arrays.toString(input[i]) + " Result: " + maxProductSubArray.find(input[i]));
        }
    }
    
    private int find(int[] input) {
        if(input == null || input.length < 1) {
            return -1;
        }
        int maxEnding = 0;
        int minEnding = 0;
        int maxSoFar = 0;
        for(int i=0; i<input.length; i++){
            int temp = maxEnding;
            maxEnding = Math.max(input[i], Math.max(minEnding * input[i], maxEnding * input[i]));
            minEnding = Math.min(input[i], Math.min(minEnding * input[i], temp * input[i]));
            maxSoFar = Math.max(maxSoFar, maxEnding);
        }
        return maxSoFar;
    }
}

以上是关于java 最大乘积子阵列的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 152. 乘积最大子数组c++/java详细题解

java 53.最大子阵列(第1个).java

java 53.最大子阵列(第1个).java

java 53.最大子阵列(第1个).java

java 53.最大子阵列(第1个).java

java 53.最大子阵列(第1个).java