Algorithm
Minimum Absolute Difference in Sliding Submatrix
Solution
class Solution:
def minAbsDiff(self, grid: List[List[int]], k: int) -> List[List[int]]:
m, n = len(grid), len(grid[0])
res = [[0] * (n - k + 1) for _ in range(m - k + 1)]
for i in range(m - k + 1):
for j in range(n - k + 1):
kgrid = []
for x in range(i, i + k):
for y in range(j, j + k):
kgrid.append(grid[x][y])
kmin = float("inf")
kgrid.sort()
for t in range(1, len(kgrid)):
if kgrid[t] == kgrid[t - 1]:
continue
kmin = min(kmin, kgrid[t] - kgrid[t - 1])
if kmin != float("inf"):
res[i][j] = kmin
return resTime Complexity
O((m - k) * (n - k) * k² * log k)
Space Complexity
O(k²)
