三个数的最大乘积
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入:nums = [1,2,3]
输出:6
示例 2:
输入:nums = [1,2,3,4]
输出:24
示例 3:
输入:nums = [-1,-2,-3]
输出:-6
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-product-of-three-numbers
题解:
分析一下可以取得最大乘积的几种情况,就可以得出这道题的解法。如果数组中全是正数,则最大乘积就是最大的三个正数的乘积,如果数组中全是负数,则最大乘积就是最大的三个负数的乘积,如果数组中有正有负,则最大乘积可能是最小的两个负数和最大的正数的乘积,或者是最大的三个正数的乘积。综上:首先将数组排序,最大乘积就是前两个数和最后一个数的乘积与最后三个数的乘积之间的最大值。代码如下:
class Solution {
public int maximumProduct(int[] nums) {
Arrays.sort(nums);
int n=nums.length;
return Math.max(nums[0]*nums[1]*nums[n-1],nums[n-1]*nums[n-2]*nums[n-3]);
}
}