给你一个整型数组 nums
,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
解题思路:先将数组排序一下,从大到小排列,如果数组里面全是负数或全是正数,那么就是最大三个数的相乘就是最大,如果数组中既有正数又有负数则就是两个最小的负数相乘再加上一个最大的整数,所以我就把这两种情况都算一下,然后进行比较,得出最大值。
class Solution {
public int maximumProduct(int[] nums) {
int a=nums.length;
int c=1;
int d=1;
for(int i=0;i<a;i++)
{
for(int j=i+1;j<a;j++)
{
if(nums[i]<nums[j])
{int b=nums[i];
nums[i]=nums[j];
nums[j]=b;
}
}
}
c=c*nums[0]*nums[1]*nums[2];
d=d*nums[0]*nums[a-2]*nums[a-1];
if(c>d){
return c;
}else{
return d;
}
}
}