3
void dfs(int i, int j, vector<vector<int>> &grid) {4
int m = grid.size(), n = grid[0].size();5
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] != 0) return;8
int dx[4] = {1, -1, 0, 0};9
int dy[4] = {0, 0, 1, -1};11
for (int k = 0; k < 4; k++) {18
int closedIsland(vector<vector<int>> &grid) {19
int m = grid.size(), n = grid[0].size();20
for (int i = 0; i < m; i++) {21
for (int j = 0; j < n; j++) {22
if ((i * j == 0 || i == m - 1 || j == n - 1) && (grid[i][j] == 0)) dfs(i, j, grid);27
for (int i = 1; i < m - 1; i++) {28
for (int j = 1; j < n - 1; j++) {29
if (grid[i][j] == 0) {