Approach 1: Optimal class Solution: def largestLocal(self, grid: List[List[int]]) -> List[List[int]]: n = len(grid) subgrid = [[0 for _ in range(n - 2)] for _ in range(n - 2)] for i in range(n - 2): for j in range(n - 2): for r in range(i, i + 3): for c in range(j, j + 3): subgrid[i][j] = max( subgrid[i][j], grid[r][c] ) return subgrid Complexity Time: O(n2) Space: O(n2) Notes Can optimize a bit better by unrolling the inner grid loop and inlining the cell references. Other Languages