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