本文共 1244 字,大约阅读时间需要 4 分钟。
package solution.study;import java.util.Arrays;/** * Created by Anjude * Date: 2021/4/18 23:28 * 注意数组中可能出现负数 */public class MaxProduct { public static void main(String[] args) { System.out.println(sort(new int[]{ 1, 2, 3, 4, 5, 6})); System.out.println(getMaxMin(new int[]{ 1, 2, 3, 4, 5, 6})); } // 线性扫描 private static int getMaxMin(int[] nums) { int min1 = Integer.MAX_VALUE, min2 = min1; int max1 = Integer.MIN_VALUE, max2 = max1, max3 = max1; for (int x : nums) { if (x < min1) { min2 = min1; min1 = x; } else if (x < min2) { min2 = x; } if (x > max1) { max3 = max2; max2 = max1; max1 = x; } else if (x > max2) { max3 = max2; max2 = x; } else if (x > max3) { max3 = x; } } return Math.max(min1 * min2 * max1, max1 * max2 * max3); } private static int sort(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]); }}
转载地址:http://wnhh.baihongyu.com/