๐งฉ๋ฌธ์ ๋งํฌ
https://leetcode.com/problems/maximum-product-difference-between-two-pairs/
๐จ๋ฌธ์ ํ์ด
์ด ๋ฌธ์ ๋ ์ฒ์์ sort๋ก ์ ๋ ฌํด์ 1,2๋ฒ์งธ๋ก ๊ฐ์ฅ ํฐ์, 1,2๋ฒ์งธ๋ก ๊ฐ์ฅ ์์ ์๋ค์ ๋ฐ๋ก ์ด์ฉํ๋ ๋ฐฉ์์ผ๋ก ํ์๋๋ฐ ์์๋ณต์ก๋๋ฅผ ๋ ์ต์ ํ ํ๋๋ฐฉ๋ฒ์ด ์์๊ณ ๊ทธ ๋ฐฉ๋ฒ์ด ์๋ ๋ฐฉ๋ฒ์ด๋ค. ๋จ์ํ nums์ ๋ชจ๋ ์์๋ค์ sorting ํ๋๋ฐฉ์์ ์๊ฐ๋ณต์ก๋๋ O(nlogn)์ด๊ณ ์๋ ํ์ด์ ์๊ฐ๋ณต์ก๋๋ O(n)์ด๋ค. ( ์ฐธ๊ณ ๋ก js์์ ์ฌ์ฉํ๋ sort ํจ์์ ์๊ฐ๋ณต์ก๋๋ O(nlogn)์ด๋ค. )
/**
* second try
* time complexity O(nlogn)
* @param {number[]} nums
* @return {number}
*/
var maxProductDifference = function (nums) {
let arr = nums.slice(0, 4);
arr.sort((a, b) => b - a);
for (let i = 4; i < nums.length; ++i) {
let n = nums[i];
if (n < arr[3]) {
arr[2] = arr[3]
arr[3] = n;
} else if (n < arr[2]) {
arr[2] = n;
} else if (n > arr[0]) {
arr[1] = arr[0];
arr[0] = n;
} else if (n > arr[1]) {
arr[1] = n ;
}
}
return arr[0] * arr[1] - arr[2] * arr[3];
};
'๐Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LeetCode [JS] > 1004. Max Consecutive Ones III (0) | 2025.05.05 |
---|---|
LeetCode[JS] > 350. Intersection of Two Arrays II (0) | 2025.04.16 |
LeetCode [JS] > 1496. Path Crossing (0) | 2025.04.08 |
LeetCode [JS] > 1128. Number of Equivalent Domino Pairs (0) | 2025.04.07 |
LeetCode [JS] > 859. Buddy strings (0) | 2025.04.05 |