• LeetCode 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.

    minLast[i] 表示以A[i]结尾的最小值,maxLast[i]表示以A[i]结尾的最大值。

    minLast[i] = Math.min(A[i], Math.min(minLast[i - 1]*A[i], maxLast[i - 1]*A[i]));
    maxLast[i] = Math.max(A[i], Math.max(maxLast[i - 1]*A[i], minLast[i - 1]*A[i]));

     1 public class Solution {
     2     public int maxProduct(int[] A) {
     3         int length = A.length;
     4         if (length == 0) {
     5             return 0;
     6         }
     7         int[] minLast = new int[length];
     8         int[] maxLast = new int[length];
     9         minLast[0] = A[0];
    10         maxLast[0] = A[0];
    11         int res = Integer.MIN_VALUE;
    12         for (int i = 1; i <length ; i++) {
    13             minLast[i] = Math.min(A[i], Math.min(minLast[i - 1]*A[i], maxLast[i - 1]*A[i]));
    14             maxLast[i] = Math.max(A[i], Math.max(maxLast[i - 1]*A[i], minLast[i - 1]*A[i]));
    15         }
    16         for (int i : maxLast) {
    17             if (i>res) res = i;
    18         }
    19         return res;
    20     }
    21 }
  • 相关阅读:
    python--模块
    python--*args与**kw
    python--偏函数
    Reversible Cards ARC111 -B 思维,图论
    Simple Math ARC111
    状压DP详解(位运算)
    E
    Ball CodeForces
    Reward HDU
    Choosing Capital for Treeland CodeForces
  • 原文地址:https://www.cnblogs.com/birdhack/p/4131675.html
Copyright © 2020-2023  润新知