https://leetcode.com/problems/maximum-product-difference-between-two-pairs/
두 쌍 (a, b)와 (c, d) 사이의 제품 차이는 (a * b) - (c * d)로 정의됩니다.
예를 들어, (5, 6)과 (2, 7)의 곱 차이는 (5 * 6) - (2 * 7) = 16입니다.
정수 배열 nums가 주어지면
쌍 (nums[w], nums[x])와 (nums[y], nums[z]) 사이의 곱 차이가 최대화되도록
4개의 개별 인덱스 w, x, y 및 z를 선택합니다.
이러한 제품 차이의 최대값을 반환합니다.
나의 풀이
import java.util.Arrays;
class Solution {
public int maxProductDifference(int[] nums) {
Arrays.sort(nums);
return (nums[nums.length-2] * nums[nums.length-1]) - (nums[0] * nums[1]);
}
}
(No Sorting)
class Solution {
public int maxProductDifference(int[] nums) {
// given: 1 <= nums[i] <= 10000
int max = 0, max2 = 0;
int min = 10001, min2 = 10001;
for (int i : nums) {
if (i > max) { // 1
max2 = max;
max = i;
} else if (i > max2) { // 2
max2 = i;
}
if (i < min) { // 3
min2 = min;
min = i;
} else if (i < min2) { // 4
min2 = i;
}
}
// return the product difference
return max * max2 - min * min2;
}
}
'Algorithm > LeetCode' 카테고리의 다른 글
2418. Sort the People (0) | 2023.03.31 |
---|---|
2037. Minimum Number of Moves to Seat Everyone (0) | 2023.03.31 |
1859. Sorting the Sentence (0) | 2023.03.31 |
2160. Minimum Sum of Four Digit Number After Splitting Digits (0) | 2023.03.31 |
2413. Smallest Even Multiple (0) | 2023.03.31 |