LeetCode-in-Java

3424. Minimum Cost to Make Arrays Identical

Medium

You are given two integer arrays arr and brr of length n, and an integer k. You can perform the following operations on arr any number of times:

Return the minimum total cost to make arr equal to brr.

Example 1:

Input: arr = [-7,9,5], brr = [7,-2,-5], k = 2

Output: 13

Explanation:

The total cost to make the arrays equal is 2 + 2 + 7 + 2 = 13.

Example 2:

Input: arr = [2,1], brr = [2,1], k = 0

Output: 0

Explanation:

Since the arrays are already equal, no operations are needed, and the total cost is 0.

Constraints:

Solution

import java.util.Arrays;

public class Solution {
    public long minCost(int[] arr, int[] brr, long k) {
        int n = arr.length;
        long sum1 = 0;
        long sum2 = 0;
        for (int i = 0; i < n; i++) {
            sum1 += Math.abs(arr[i] - brr[i]);
        }
        if (k < sum1) {
            Arrays.sort(arr);
            Arrays.sort(brr);
            sum2 = k;
            for (int i = 0; i < n; i++) {
                sum2 += Math.abs(arr[i] - brr[i]);
            }
        } else {
            return sum1;
        }
        return Math.min(sum1, sum2);
    }
}