Skip to content

Code:

js
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @param {number} k
 * @return {number[][]}
 */
var kSmallestPairs = function (nums1, nums2, k) {
    let i = 0
    let j = 0
    let max = Number.MAX_SAFE_INTEGER
    const result = []
    const set = {}

    for (let i = 0; i < nums1.length; i++) {
        for (let j = 0; j < nums2.length; j++) {
            const index = nums1[i] + nums2[j] + 2000000000
            if (set[index]) {
                set[index].push([nums1[i], nums2[j]])
            } else {
                set[index] = [[nums1[i], nums2[j]]]
            }
        }
    }

    // console.log(set)

    for (const key in set) {
        const arr = set[key]
        k = k - arr.length

        if (k >= 0) {
            result.push(...arr)
        } else {
            result.push(...arr.slice(0, k + arr.length))

            return result
        }
    }

    return result
};


console.log(kSmallestPairs([-10,-4,0,0,6], [3,5,6,7,8,100], 10))

❤ With Algorithm