/**
* @param {number[]} nums1
* @param {number[]} nums2
* @returns {number}
*/
export function findDifference(nums1, nums2) {
nums1.sort((a, b) => a - b);
nums2.sort((a, b) => a - b);
let p1 = 0;
let p2 = 0;
let minDiff = Infinity;
while (p1 < nums1.length && p2 < nums2.length) {
const diff = Math.abs(nums1[p1] - nums2[p2]);
minDiff = Math.min(minDiff, diff);
if (nums1[p1] < nums2[p2]) {
p1++;
} else if (nums1[p1] > nums2[p2]) {
p2++;
} else {
return 0;
}
}
return minDiff;
}
Оценка сложности
Время: O(n*log(n) + m*log(m)), где n - размер nums1, m - размер nums2
Память: O(1) — встроенная сортировка в большинстве языков использует O(n) доп. памяти, но при использовании Heap Sort можно добиться O(1). На собеседовании достаточно проговорить это вслух