// 不用排序的吧 private int max(int[] nums) { int minNag1 = 0; int minNag2 = 0; int maxPos1 = 0; int maxPos2 = 0; for (int num : nums) { if (num < 0) { if (num <= minNag1) { // 比最小值还小,替换minNag2为minNag1 minNag2 = minNag1; minNag1 = num; } else if (num < minNag2) { // 比minNag1大但比minNag2小,替换minNag2为num minNag2 = num; } } else if (num > 0) { if (num >= maxPos2) { maxPos1 = maxPos2; maxPos2 = num; } else if (num > maxPos1) { maxPos1 = num; } } } return Math.max(minNag1 * minNag2, maxPos1 * maxPos2); }