mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
@ -219,7 +219,7 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
### Python:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# 版本一
|
# 版本一
|
||||||
@ -279,7 +279,57 @@ class Solution:
|
|||||||
return result
|
return result
|
||||||
```
|
```
|
||||||
|
|
||||||
Rust:
|
### Go
|
||||||
|
|
||||||
|
```go
|
||||||
|
func numIslands(grid [][]byte) int {
|
||||||
|
// 用1标记已访问
|
||||||
|
visited := make([][]int, len(grid))
|
||||||
|
for i := 0; i < len(visited); i++{
|
||||||
|
visited[i] = make([]int, len(grid[0]))
|
||||||
|
}
|
||||||
|
|
||||||
|
var bfs func(x, y int)
|
||||||
|
bfs = func(x, y int){
|
||||||
|
stack := make([][]int, 0)
|
||||||
|
stack = append(stack, []int{x, y})
|
||||||
|
moveX := []int{1, -1, 0, 0}
|
||||||
|
moveY := []int{0, 0, 1, -1}
|
||||||
|
|
||||||
|
for len(stack) != 0{
|
||||||
|
node := stack[len(stack) - 1]
|
||||||
|
stack = stack[:len(stack) - 1]
|
||||||
|
|
||||||
|
for i := 0; i < 4; i++{
|
||||||
|
dx := moveX[i] + node[0]
|
||||||
|
dy := moveY[i] + node[1]
|
||||||
|
if dx < 0 || dx >= len(grid) || dy < 0 || dy >= len(grid[0]) || visited[dx][dy] == 1{
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
visited[dx][dy] = 1
|
||||||
|
if grid[dx][dy] == '1'{
|
||||||
|
stack = append(stack, []int{dx,dy})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result := 0
|
||||||
|
for i := 0; i < len(grid); i++{
|
||||||
|
for j := 0; j < len(grid[0]); j++{
|
||||||
|
if visited[i][j] == 0 && grid[i][j] == '1'{
|
||||||
|
bfs(i, j)
|
||||||
|
visited[i][j] = 1
|
||||||
|
result++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rust:
|
||||||
|
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
|
@ -217,6 +217,34 @@ class Solution:
|
|||||||
self.path.pop() # 回溯
|
self.path.pop() # 回溯
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Go
|
||||||
|
|
||||||
|
```go
|
||||||
|
func allPathsSourceTarget(graph [][]int) [][]int {
|
||||||
|
result := make([][]int, 0)
|
||||||
|
|
||||||
|
var dfs func(path []int, step int)
|
||||||
|
dfs = func(path []int, step int){
|
||||||
|
// 从0遍历到length-1
|
||||||
|
if step == len(graph) - 1{
|
||||||
|
tmp := make([]int, len(path))
|
||||||
|
copy(tmp, path)
|
||||||
|
result = append(result, tmp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(graph[step]); i++{
|
||||||
|
next := append(path, graph[step][i])
|
||||||
|
dfs(next, graph[step][i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 从0开始,开始push 0进去
|
||||||
|
dfs([]int{0}, 0)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
### Rust
|
### Rust
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
|
Reference in New Issue
Block a user