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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP