130. Surrounded Regions
My accepted JavaScript solution to LeetCode problem 130, Surrounded Regions, running in 2ms.
- Difficulty: Medium
- JavaScript
- Runtime 2ms
- Memory 59.1MB
- Updated
Read the problem on LeetCode View on GitHub
The problem statement is LeetCode’s and stays on their site. What follows is my accepted solution.
JavaScript
Accepted on LeetCode — runtime 2ms, memory 59.1MB, accepted 2025-12-24.
/**
* @param {character[][]} board
* @return {void} Do not return anything, modify board in-place instead.
*/
var solve = function(board) {
if (!board.length) return;
const m = board.length, n = board[0].length;
const dfs = (i, j) => {
if (i < 0 || i >= m || j < 0 || j >= n || board[i][j] !== 'O') return;
board[i][j] = 'T';
dfs(i + 1, j);
dfs(i - 1, j);
dfs(i, j + 1);
dfs(i, j - 1);
};
for (let i = 0; i < m; i++) {
dfs(i, 0);
dfs(i, n - 1);
}
for (let j = 0; j < n; j++) {
dfs(0, j);
dfs(m - 1, j);
}
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
if (board[i][j] === 'O') board[i][j] = 'X';
else if (board[i][j] === 'T') board[i][j] = 'O';
}
}
};