Computer >> Máy Tính >  >> Lập trình >> C ++

Tích tối đa của ba số trong C ++


Giả sử chúng ta có một mảng số nguyên; chúng ta phải tìm ba số có sản phẩm là tối đa sau đó trả về sản phẩm tối đa.

Vì vậy, nếu đầu vào là [1,1,2,3,3], thì đầu ra sẽ là 18, vì ba phần tử là [2,3,3].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • sắp xếp số mảng

  • l:=kích thước của nums

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

  • trả về tối đa a * b * c và d * e * a

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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));
}

Đầu vào

{1,1,2,3,3}

Đầu ra

18