三个数的最大乘积
题目
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入: [1,2,3]
输出: 6
示例 2:
输入: [1,2,3,4]
输出: 24
解题思路
1. 分为三种情况,全部正数,全部负数,有正数,有负数
2. 全部正数/负数取排序后三最大三位
3. 有正有负,最大乘积出现在两端
代码
```java
class Solution {
public int maximumProduct(int[] nums) {
if(nums == null || nums.length < 3)
return 0;
Arrays.sort(nums);
//全部正数
if(nums[0] >= 0 ){
return nums[nums.length-1] * nums[nums.length-2] *nums[nums.length-3];
}
//全部负数
if(nums[nums.length-1] <= 0){
return nums[nums.length-1] * nums[nums.length-2] *nums[nums.length-3];
}
//有正数有负数
return Math.max(nums[0]*nums[1]*nums[nums.length-1], nums[nums.length-1] * nums[nums.length-2] *nums[nums.length-3]);
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: