Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ผลิตภัณฑ์สูงสุดของลำดับย่อยที่เพิ่มขึ้นใน 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