在 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

更新於: 09-Sep-2020

83 檢視

開啟您的 職業

完成課程獲得認證

開始學習
廣告
© . All rights reserved.