Back to October Back to Year 2026
MEDIUM 10 Oct 2026 View on LeetCode

2333. Minimum Sum of Squared Difference

</> Solution

/**
 * Problem: LeetCode 2333 - Minimum Sum of Squared Difference
 * Difficulty: Medium
 * Language: Java
 * Author: CodeByTushu
 */
class Solution {
    public long minSumSquareDiff(int[] nums1, int[] nums2, int k1, int k2) {
        int n = nums1.length;
        int maxDiff = 100000;
        long[] cnt = new long[maxDiff + 2];
        for (int i = 0; i < n; i++) {
            cnt[Math.abs(nums1[i] - nums2[i])]++;
        }
        long k = (long) k1 + k2;
        for (int d = maxDiff; d >= 1 && k > 0; d--) {
            if (cnt[d] == 0) continue;
            if (cnt[d] <= k) {
                k -= cnt[d];
                cnt[d - 1] += cnt[d];
                cnt[d] = 0;
            } else {
                cnt[d - 1] += k;
                cnt[d] -= k;
                k = 0;
            }
        }
        long ans = 0;
        for (int d = 1; d <= maxDiff; d++) {
            ans += (long) d * d * cnt[d];
        }
        return ans;
    }
}

TIME COMPLEXITY

O(N + M) where M = max(diff) ≤ 10⁵

SPACE COMPLEXITY

O(M)

TOPICS

Array Bucket Sort Greedy Math Sorting