Skip to content

Latest commit

 

History

History
88 lines (60 loc) · 1.82 KB

File metadata and controls

88 lines (60 loc) · 1.82 KB

English Version

题目描述

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

 

示例 1:

输入:nums = [1,2,3]
输出:6

示例 2:

输入:nums = [1,2,3,4]
输出:24

示例 3:

输入:nums = [-1,-2,-3]
输出:-6

 

提示:

  • 3 <= nums.length <= 104
  • -1000 <= nums[i] <= 1000

解法

Python3

class Solution:
    def maximumProduct(self, nums: List[int]) -> int:
        n = len(nums)
        nums.sort()
        # 全负 0 1 n-1
        # 全正 n-1 n-2 n-3
        # 有正有负 max([0 1 n-1], [n-1 n-2 n-3])
        return max(nums[0] * nums[1] * nums[n - 1], nums[n - 1] * nums[n - 2] * nums[n - 3])

Java

class Solution {
    public int maximumProduct(int[] nums) {
        Arrays.sort(nums);
        int n = nums.length;
        // 全负 0 1 n-1
        // 全正 n-1 n-2 n-3
        // 有正有负 max([0 1 n-1], [n-1 n-2 n-3])
        return Math.max(nums[0] * nums[1] * nums[n - 1], nums[n - 1] * nums[n - 2] * nums[n - 3]);
    }
}

...