Quick actions

cmd+k|ctrl+k

Navigation

Languages

Maximum Product Subarray

Snippet info

Language

Cpp

Visibility

public

Author

amangoyal1727

Created

2021-01-09T15:06:25Z

Updated

2021-01-09T15:06:25Z

#include <iostream>
using namespace std;
int maxProduct(int A[], int n){
    int max_current = A[0];
    int max_global = A[0];
    int min_current = A[0];
    int temp;
    for(int i=1; i<n; i++){
        
        if(A[i]<0){
            temp = min_current;
            min_current = max_current;
            max_current = temp;
        }
        
        max_current = max(A[i], A[i]*max_current);
        min_current = min(A[i], A[i]*min_current);
        //-18;
        //3;
        //180
        //-30
        if(max_current > max_global)
            max_global = max_current;
    }
    return max_global;
}

int main() {
    int n;
    cin>>n;
    
    
    int A[n];
    for(int i=0 ; i<n; i++){
        cin>>A[i];
    }
    
    cout<<maxProduct(A,n);
    
}
INFO