Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f7cb043

Browse files
Merge branch 'youngyangyang04:master' into master
2 parents babb21f + d215f07 commit f7cb043

File tree

5 files changed

+250
-3
lines changed

5 files changed

+250
-3
lines changed

‎problems/0017.电话号码的字母组合.md‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,44 @@ object Solution {
694694
}
695695
```
696696

697+
### Ruby
698+
```ruby
699+
def letter_combinations(digits)
700+
letter_map = {
701+
2 => ['a','b','c'],
702+
3 => ['d','e','f'],
703+
4 => ['g','h','i'],
704+
5 => ['j','k','l'],
705+
6 => ['m','n','o'],
706+
7 => ['p','q','r','s'],
707+
8 => ['t','u','v'],
708+
9 => ['w','x','y','z']
709+
}
710+
711+
result = []
712+
path = []
713+
714+
return result if digits.size == 0
715+
716+
backtracking(result, letter_map, digits.split(''), path, 0)
717+
result
718+
end
719+
720+
def backtracking(result, letter_map, digits, path, index)
721+
if path.size == digits.size
722+
result << path.join('')
723+
return
724+
end
725+
726+
hash[digits[index].to_i].each do |chr|
727+
path << chr
728+
#index + 1代表处理下一个数字
729+
backtracking(result, letter_map, digits, path, index + 1)
730+
#回溯,撤销处理过的数字
731+
path.pop
732+
end
733+
end
734+
```
697735

698736
<p align="center">
699737
<a href="https://programmercarl.com/other/kstar.html" target="_blank">

‎problems/0200.岛屿数量.广搜版.md‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,42 @@ class Solution:
239239
visited[next_i][next_j] = True
240240

241241
```
242+
### JavaScript
243+
```javascript
244+
var numIslands = function (grid) {
245+
let dir = [[0, 1], [1, 0], [-1, 0], [0, -1]]; // 四个方向
246+
let bfs = (grid, visited, x, y) => {
247+
let queue = [];
248+
queue.push([x, y]);
249+
visited[x][y] = true;
250+
while (queue.length) {
251+
let top = queue.shift();//取出队列头部元素
252+
console.log(top)
253+
for (let i = 0; i < 4; i++) {
254+
let nextX = top[0] + dir[i][0]
255+
let nextY = top[1] + dir[i][1]
256+
if (nextX < 0 || nextX >= grid.length || nextY < 0 || nextY >= grid[0].length)
257+
continue;
258+
if (!visited[nextX][nextY] && grid[nextX][nextY] === "1") {
259+
queue.push([nextX, nextY])
260+
visited[nextX][nextY] = true
261+
}
262+
}
263+
}
264+
}
265+
let visited = new Array(grid.length).fill().map(() => Array(grid[0].length).fill(false))
266+
let res = 0
267+
for (let i = 0; i < grid.length; i++) {
268+
for (let j = 0; j < grid[i].length; j++) {
269+
if (!visited[i][j] && grid[i][j] === "1") {
270+
++res;
271+
bfs(grid, visited, i, j);
272+
}
273+
}
274+
}
275+
return res
276+
};
277+
```
242278

243279
### Rust
244280

‎problems/0200.岛屿数量.深搜版.md‎

Lines changed: 85 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ class Solution {
219219
}
220220
```
221221

222-
Python:
222+
### Python:
223223

224224
```python
225225
# 版本一
@@ -278,8 +278,91 @@ class Solution:
278278

279279
return result
280280
```
281+
### JavaScript
281282

282-
Rust:
283+
```javascript
284+
var numIslands = function (grid) {
285+
let dir = [[0, 1], [1, 0], [-1, 0], [0, -1]]; // 四个方向
286+
287+
let dfs = (grid, visited, x, y) => {
288+
for (let i = 0; i < 4; i++) {
289+
let nextX = x + dir[i][0]
290+
let nextY = y + dir[i][1]
291+
if (nextX < 0 || nextX >= grid.length || nextY < 0 || nextY >= grid[0].length)
292+
continue;
293+
if (!visited[nextX][nextY] && grid[nextX][nextY] === "1") {
294+
visited[nextX][nextY] = true
295+
dfs(grid,visited,nextX,nextY)
296+
}
297+
}
298+
}
299+
let visited = new Array(grid.length).fill().map(() => Array(grid[0].length).fill(false))
300+
301+
let res = 0
302+
for (let i = 0; i < grid.length; i++) {
303+
for (let j = 0; j < grid[i].length; j++) {
304+
if (!visited[i][j] && grid[i][j] === "1") {
305+
++res;
306+
visited[i][j] = true;
307+
dfs(grid, visited, i, j);
308+
}
309+
}
310+
}
311+
return res
312+
};
313+
```
314+
315+
### Go
316+
317+
```go
318+
func numIslands(grid [][]byte) int {
319+
// 用1标记已访问
320+
visited := make([][]int, len(grid))
321+
for i := 0; i < len(visited); i++{
322+
visited[i] = make([]int, len(grid[0]))
323+
}
324+
325+
var bfs func(x, y int)
326+
bfs = func(x, y int){
327+
stack := make([][]int, 0)
328+
stack = append(stack, []int{x, y})
329+
moveX := []int{1, -1, 0, 0}
330+
moveY := []int{0, 0, 1, -1}
331+
332+
for len(stack) != 0{
333+
node := stack[len(stack) - 1]
334+
stack = stack[:len(stack) - 1]
335+
336+
for i := 0; i < 4; i++{
337+
dx := moveX[i] + node[0]
338+
dy := moveY[i] + node[1]
339+
if dx < 0 || dx >= len(grid) || dy < 0 || dy >= len(grid[0]) || visited[dx][dy] == 1{
340+
continue
341+
}
342+
visited[dx][dy] = 1
343+
if grid[dx][dy] == '1'{
344+
stack = append(stack, []int{dx,dy})
345+
}
346+
}
347+
}
348+
}
349+
350+
result := 0
351+
for i := 0; i < len(grid); i++{
352+
for j := 0; j < len(grid[0]); j++{
353+
if visited[i][j] == 0 && grid[i][j] == '1'{
354+
bfs(i, j)
355+
visited[i][j] = 1
356+
result++
357+
}
358+
}
359+
}
360+
361+
return result
362+
}
363+
```
364+
365+
### Rust:
283366

284367

285368
```rust

‎problems/0695.岛屿的最大面积.md‎

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,44 @@ class Solution:
391391
self.dfs(grid, visited, new_x, new_y)
392392
```
393393

394+
### JavaScript
395+
```javascript
396+
var maxAreaOfIsland = function (grid) {
397+
let dir = [[0, 1], [1, 0], [-1, 0], [0, -1]]; // 四个方向
398+
399+
let visited = new Array(grid.length).fill().map(() => Array(grid[0].length).fill(false))
400+
401+
let dfs = (grid, visited, x, y, m) => {
402+
for (let i = 0; i < 4; i++) {
403+
let nextX = x + dir[i][0]
404+
let nextY = y + dir[i][1]
405+
if (nextX < 0 || nextX >= grid.length || nextY < 0 || nextY >= grid[0].length)
406+
continue;
407+
if (!visited[nextX][nextY] && grid[nextX][nextY] === 1) {
408+
visited[nextX][nextY] = true
409+
m = dfs(grid, visited, nextX, nextY,m+1)
410+
}
411+
}
412+
return m
413+
}
414+
415+
let max = 0
416+
417+
for (let i = 0; i < grid.length; i++) {
418+
for (let j = 0; j < grid[i].length; j++) {
419+
if (!visited[i][j] && grid[i][j] === 1) {
420+
// 深度优先
421+
visited[i][j] = true;
422+
let m = dfs(grid, visited, i, j, 1);
423+
if (m > max) max = m;
424+
}
425+
}
426+
}
427+
return max
428+
};
429+
```
430+
431+
394432
### Rust
395433

396434
dfs: 版本一
@@ -530,7 +568,6 @@ impl Solution {
530568
}
531569
}
532570
```
533-
534571
<p align="center">
535572
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
536573
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>

‎problems/0797.所有可能的路径.md‎

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,61 @@ class Solution:
217217
self.path.pop() # 回溯
218218
```
219219

220+
221+
### JavaScript
222+
```javascript
223+
var allPathsSourceTarget = function(graph) {
224+
let res=[],path=[]
225+
226+
function dfs(graph,start){
227+
if(start===graph.length-1){
228+
res.push([...path])
229+
return;
230+
}
231+
for(let i=0;i<graph[start].length;i++){
232+
path.push(graph[start][i])
233+
dfs(graph,graph[start][i])
234+
path.pop()
235+
}
236+
}
237+
path.push(0)
238+
dfs(graph,0)
239+
return res
240+
};
241+
```
242+
243+
244+
### Go
245+
246+
```go
247+
func allPathsSourceTarget(graph [][]int) [][]int {
248+
result := make([][]int, 0)
249+
250+
var dfs func(path []int, step int)
251+
dfs = func(path []int, step int){
252+
// 从0遍历到length-1
253+
if step == len(graph) - 1{
254+
tmp := make([]int, len(path))
255+
copy(tmp, path)
256+
result = append(result, tmp)
257+
return
258+
}
259+
260+
for i := 0; i < len(graph[step]); i++{
261+
next := append(path, graph[step][i])
262+
dfs(next, graph[step][i])
263+
}
264+
}
265+
// 从0开始,开始push 0进去
266+
dfs([]int{0}, 0)
267+
return result
268+
}
269+
270+
```
271+
220272
### Rust
221273

274+
222275
```rust
223276
impl Solution {
224277
pub fn all_paths_source_target(graph: Vec<Vec<i32>>) -> Vec<Vec<i32>> {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /