mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Update 0130.被围绕的区域.md
This commit is contained in:
@ -561,6 +561,58 @@ function solve(board) {
|
||||
}
|
||||
```
|
||||
|
||||
### Go
|
||||
|
||||
```dfs
|
||||
var DIRECTIONS = [4][2]int{{-1, 0}, {0, -1}, {1, 0}, {0, 1}}
|
||||
|
||||
func solve(board [][]byte) {
|
||||
rows, cols := len(board), len(board[0])
|
||||
// 列
|
||||
for i := 0; i < rows; i++ {
|
||||
if board[i][0] == 'O' {
|
||||
dfs(board, i, 0)
|
||||
}
|
||||
if board[i][cols-1] == 'O' {
|
||||
dfs(board, i, cols-1)
|
||||
}
|
||||
}
|
||||
// 行
|
||||
for j := 0; j < cols; j++ {
|
||||
if board[0][j] == 'O' {
|
||||
dfs(board, 0, j)
|
||||
}
|
||||
if board[rows-1][j] == 'O' {
|
||||
dfs(board, rows-1, j)
|
||||
}
|
||||
}
|
||||
|
||||
for _, r := range board {
|
||||
for j, c := range r {
|
||||
if c == 'A' {
|
||||
r[j] = 'O'
|
||||
}
|
||||
if c == 'O' {
|
||||
r[j] = 'X'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func dfs(board [][]byte, i, j int) {
|
||||
board[i][j] = 'A'
|
||||
for _, d := range DIRECTIONS {
|
||||
x, y := i+d[0], j+d[1]
|
||||
if x < 0 || x >= len(board) || y < 0 || y >= len(board[0]) {
|
||||
continue
|
||||
}
|
||||
if board[x][y] == 'O' {
|
||||
dfs(board, x, y)
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<p align="center">
|
||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||
|
Reference in New Issue
Block a user