From 7e0867ed69af58affc9b7569aa7b3fc4c57d1853 Mon Sep 17 00:00:00 2001 From: sourav2256 Date: Fri, 20 Mar 2026 17:35:48 +0530 Subject: [PATCH] Add MinimumAbsoluteDifferenceSlidingSubmatrix.java to calculate minimum absolute difference in sliding submatrices --- ...mumAbsoluteDifferenceSlidingSubmatrix.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Java/MinimumAbsoluteDifferenceSlidingSubmatrix.java diff --git a/Java/MinimumAbsoluteDifferenceSlidingSubmatrix.java b/Java/MinimumAbsoluteDifferenceSlidingSubmatrix.java new file mode 100644 index 0000000..641c5a2 --- /dev/null +++ b/Java/MinimumAbsoluteDifferenceSlidingSubmatrix.java @@ -0,0 +1,27 @@ +import java.util.Arrays; + +public class MinimumAbsoluteDifferenceSlidingSubmatrix { + public int[][] minAbsDiff(int[][] grid, int k) { + int m = grid.length, n = grid[0].length; + int[][] ans = new int[m - k + 1][n - k + 1]; + + for (int i = 0; i <= m - k; i++) { + for (int j = 0; j <= n - k; j++) { + int[] nums = new int[k * k]; + int idx = 0; + for (int x = i; x < i + k; x++) + for (int y = j; y < j + k; y++) + nums[idx++] = grid[x][y]; + + Arrays.sort(nums); + int minDiff = Integer.MAX_VALUE; + for (int p = 1; p < nums.length; p++) + if (nums[p] != nums[p - 1]) + minDiff = Math.min(minDiff, nums[p] - nums[p - 1]); + + ans[i][j] = minDiff == Integer.MAX_VALUE ? 0 : minDiff; + } + } + return ans; + } +}