c_cpp 最大乘积子阵列

Posted

tags:

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

#include <bits/stdc++.h>
using namespace std;
int maxProduct(int* arr, int n) 
{ 
	 int minVal = arr[0]; 
     int maxVal = arr[0];
     int maxProduct = arr[0]; 
     for (int i = 1; i < n; i++) { 
     	if (arr[i] < 0) 
            swap(maxVal, minVal); 
        maxVal = max(arr[i], maxVal * arr[i]); 
        minVal = min(arr[i], minVal * arr[i]); 
        
        maxProduct = max(maxProduct, maxVal); 
     }
     return maxProduct;
}
int main() {
   int arr[] = { -1, -3, -10, 0, 60 }; 
  
    int n = sizeof(arr) / sizeof(arr[0]); 
  
    cout << "Maximum Subarray product is "
         << maxProduct(arr, n) << endl; 
  
    return 0; 

	return 0;
}

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

c_cpp 最大子阵列和子序列

c_cpp 53.最大子阵列

c_cpp 53.最大子阵列

c_cpp 最大子阵列总和。在具有最大总和的数组(包含至少一个数字)中查找连续的子数组。

c_cpp 增长最快的子阵列

c_cpp 最便宜的子阵列