Java Online Compiler
Example: Minimum Operations to Equalize Array Elements (Median Approach) in Java
C
C++
C#
Java
Python
PHP
Main.java
STDIN
Run
// Minimum Operations to Equalize Array Elements (Median Approach) import java.util.Arrays; // Required for sorting // Main class containing the entry point of the program public class Main { public static void main(String[] args) { // Test cases int[] arr1 = {1, 2, 3}; int[] arr2 = {1, 1, 1}; int[] arr3 = {1, 10, 2, 9}; int[] arr4 = {5, 2, 8, 1, 7}; int[] arr5 = {1, 3, 5, 2, 4}; // Odd number of elements int[] arr6 = {6, 4, 2, 1, 3, 5}; // Even number of elements System.out.println("Array: " + Arrays.toString(arr1) + ", Min Operations: " + minOperationsToEqual(arr1)); // Expected: 2 System.out.println("Array: " + Arrays.toString(arr2) + ", Min Operations: " + minOperationsToEqual(arr2)); // Expected: 0 System.out.println("Array: " + Arrays.toString(arr3) + ", Min Operations: " + minOperationsToEqual(arr3)); // Expected: 16 (target median is 5 or 6, for {1,2,9,10}, median can be 2 or 9, 1+2+9+10, median is 5, (5-1)+(5-2)+(9-5)+(10-5) = 4+3+4+5=16) System.out.println("Array: " + Arrays.toString(arr4) + ", Min Operations: " + minOperationsToEqual(arr4)); // Expected: 14 (target median is 5, {1,2,5,7,8} -> (5-1)+(5-2)+(5-5)+(7-5)+(8-5) = 4+3+0+2+3=12) System.out.println("Array: " + Arrays.toString(arr5) + ", Min Operations: " + minOperationsToEqual(arr5)); // Expected: 6 (target median is 3, {1,2,3,4,5} -> (3-1)+(3-2)+(3-3)+(4-3)+(5-3) = 2+1+0+1+2 = 6) System.out.println("Array: " + Arrays.toString(arr6) + ", Min Operations: " + minOperationsToEqual(arr6)); // Expected: 9 (target median is 3 or 4, {1,2,3,4,5,6} -> median 3: (3-1)+(3-2)+(3-3)+(4-3)+(5-3)+(6-3) = 2+1+0+1+2+3 = 9. median 4: (4-1)+(4-2)+(4-3)+(4-4)+(5-4)+(6-4) = 3+2+1+0+1+2 = 9) } // Method to calculate minimum operations to make all array elements equal public static long minOperationsToEqual(int[] arr) { // Step 1: Handle edge cases for empty or single-element arrays if (arr == null || arr.length <= 1) { return 0; } // Step 2: Sort the array to easily find the median Arrays.sort(arr); // Step 3: Determine the median element // For an odd number of elements, the median is arr[length / 2]. // For an even number of elements, any value between arr[length / 2 - 1] and arr[length / 2] // (inclusive) will result in the same minimum sum of absolute differences. // We can pick either arr[length / 2 - 1] or arr[length / 2]. int median = arr[arr.length / 2]; // Step 4: Calculate the total operations by summing absolute differences long totalOperations = 0; for (int num : arr) { totalOperations += Math.abs(num - median); } // Step 5: Return the total minimum operations return totalOperations; } }
Output
Clear
ADVERTISEMENTS