1. 程式人生 > 其它 >力扣打卡2021.1.120 三個數的最大乘積

力扣打卡2021.1.120 三個數的最大乘積

技術標籤:力扣打卡leetcode演算法

題目:
給定一個整型陣列,在陣列中找出由三個陣列成的最大乘積,並輸出這個乘積。

示例 1:

輸入: [1,2,3]
輸出: 6
示例 2:

輸入: [1,2,3,4]
輸出: 24

程式碼:

class Solution {
public:
    int maximumProduct(vector<int>& nums) {
        // 最小的和第二小的
        int min1 = INT_MAX, min2 = INT_MAX;
        // 最大的、第二大的和第三大的
        int max1 =
INT_MIN, max2 = INT_MIN, max3 = INT_MIN; for (int x: nums) { if (x < min1) { min2 = min1; min1 = x; } else if (x < min2) { min2 = x; } if (x > max1) { max3 = max2; max2 =
max1; max1 = x; } else if (x > max2) { max3 = max2; max2 = x; } else if (x > max3) { max3 = x; } } return max(min1 * min2 * max1, max1 * max2 * max3); } };