C ++中子序列增加的最大乘积
在本教程中,我们将讨论一个程序,以查找子序列增加的最大乘积。
为此,我们将提供一个整数数组。我们的任务是找到具有任意数量元素的数组的任何子序列的最大乘积。
示例
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
//返回最大产品
ll lis(ll arr[], ll n) {
ll mpis[n];
//初始值
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
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西