在 C++ 中找一个递增子序列的最大乘积
在本教程中,我们将讨论一个查找递增子序列最大乘积的程序。
为此,我们将提供一个整数数组。我们的任务是查找数组中包含任意数量的元素的任何子序列的最大乘积。
示例
#include <bits/stdc++.h> #define ll long long int using namespace std; //returning maximum product ll lis(ll arr[], ll n) { ll mpis[n]; //initiating values for (int i = 0; i < n; i++) mpis[i] = arr[i]; for (int i = 1; i < n; i++) for (int j = 0; j < i; j++) if (arr[i] > arr[j] && mpis[i] < (mpis[j] * arr[i])) mpis[i] = mpis[j] * arr[i]; return *max_element(mpis, mpis + n); } int main() { ll arr[] = { 3, 100, 4, 5, 150, 6 }; ll n = sizeof(arr) / sizeof(arr[0]); printf("%lld", lis(arr, n)); return 0; }
输出
45000
广告