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

ผลิตภัณฑ์สูงสุดของสามตัวเลขใน C++


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

ดังนั้น หากอินพุตเป็น [1,1,2,3,3] ผลลัพธ์จะเป็น 18 เนื่องจากองค์ประกอบทั้งสามคือ [2,3,3]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • จัดเรียงตัวเลขอาร์เรย์

  • l :=ขนาดของ nums

  • a :=nums[l - 1], b :=nums[l - 2], c :=nums[l - 3], d :=nums[0], e :=nums[1]

  • คืนค่าสูงสุดของ a * b * c และ d * e * a

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int maximumProduct(vector<int>& nums) {
      sort(nums.begin(), nums.end());
      int l = nums.size();
      int a = nums[l - 1], b = nums[l - 2], c = nums[l - 3], d = nums[0], e = nums[1];
      return max(a * b * c, d * e * a);
   }
};
main(){
   Solution ob;
   vector<int> v = {1,1,2,3,3};
   cout << (ob.maximumProduct(v));
}

อินพุต

{1,1,2,3,3}

ผลลัพธ์

18