Maximum Product Subarray

Run Settings
LanguageC++
Language Version
Run Command
#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); }
Editor Settings
Theme
Key bindings
Full width
Lines