Find the Minimum Area to Cover All Ones I

MediumArrayMatrix

Solution

export function minimumArea(grid: number[][]): number {
  let [minRow, maxRow] = [Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER];
  let [minCol, maxCol] = [Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER];
 
  grid.forEach((arr, row) => {
    arr.forEach((value, col) => {
      if (value !== 1) return;
      minRow = Math.min(minRow, row);
      maxRow = Math.max(maxRow, row);
      minCol = Math.min(minCol, col);
      maxCol = Math.max(maxCol, col);
    });
  });
  return (maxRow - minRow + 1) * (maxCol - minCol + 1);
}

Complexity

  • Time: O(M * N)
  • Space: O(1)