问题:给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积??
分析:保证是正数的情况下,求绝对值最大。
首先:给数组升序排序
然后:1.全部正数:取最大的三个
2.全部负数:取最大的三个
3.有正有负:两个最小的,一个最大的 或是三个最大的
public class Test {
public static void main(String[] args) {
int[] a={6,1,-20,7};
int b=maximumProduct(a);
System.out.println(b);
}
public static int maximumProduct(int[] nums) {
Arrays.sort(nums);
return max(nums[nums.length-1] * nums[nums.length-2] * nums[nums.length-3], nums[0] * nums[1] * nums[nums.length-1]);
}
}
输出结果:
我要刷100道算法题,第1道!!!