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

ผลิตภัณฑ์สูงสุดของการเพิ่มขึ้นตามลำดับขนาด 3 ใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาผลิตภัณฑ์สูงสุดของลำดับรองที่เพิ่มขึ้นของขนาด 3

สำหรับสิ่งนี้ เราจะได้รับอาร์เรย์ของจำนวนเต็มบวก งานของเราคือค้นหาองค์ประกอบที่ตามมาของสามองค์ประกอบด้วยผลิตภัณฑ์สูงสุด

ตัวอย่าง

#include<bits/stdc++.h>
using namespace std;
//returning maximum product of subsequence
long long int maxProduct(int arr[] , int n) {
   int smaller[n];
   smaller[0] = -1 ;
   set<int>S ;
   for (int i = 0; i < n ; i++) {
      auto j = S.insert(arr[i]);
      auto itc = j.first;
      --itc;
      if (itc != S.end())
         smaller[i] = *itc;
      else
         smaller[i] = -1;
   }
   long long int result = INT_MIN;
   int max_right = arr[n-1];
   for (int i=n-2 ; i >= 1; i--) {
      if (arr[i] > max_right)
         max_right = arr[i];
      else if (smaller[i] != -1)
         result = max(smaller[i] * arr[i] * max_right, result);
   }
   return result;
}
int main() {
   int arr[] = {10, 11, 9, 5, 6, 1, 20};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << maxProduct(arr, n) << endl;
   return 0;
}

ผลลัพธ์

2200