C++ 中三數的最大乘積


假設我們有一個整數陣列;我們需要找出三個數,它們的乘積最大,然後返回乘積的最大值。

因此,如果輸入是 [1,1,2,3,3],則輸出將是 18,因為三個元素是 [2,3,3]。

為解決這個問題,我們將按以下步驟操作 -

  • 對陣列 nums 排序

  • 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

更新日期: 2020 年 6 月 11 日

662 次瀏覽

啟動您的 職業

完成課程以獲得認證

開始
廣告
© . All rights reserved.