mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-12 13:45:39 +08:00
Merge branch 'master' of github.com:youngyangyang04/leetcode-master
This commit is contained in:
@ -284,6 +284,48 @@ var validPath = function(n, edges, source, destination) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Go
|
||||||
|
|
||||||
|
```go
|
||||||
|
func validPath(n int, edges [][]int, source int, destination int) bool {
|
||||||
|
n = 200005
|
||||||
|
father := make([]int, n)
|
||||||
|
// 并查集初始化
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
father[i] = i
|
||||||
|
}
|
||||||
|
|
||||||
|
var find func(u int) int // 并查集里寻根的过程
|
||||||
|
find = func(u int) int {
|
||||||
|
// 如果根就是自己,直接返回
|
||||||
|
// 如果根不是自己,就根据数组下标一层一层向下找
|
||||||
|
if u == father[u] {
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
return find(father[u])
|
||||||
|
}
|
||||||
|
|
||||||
|
var join func(u, v int) // 将 v->u 这条边加入并查集
|
||||||
|
join = func(u, v int) {
|
||||||
|
u = find(u)
|
||||||
|
v = find(v)
|
||||||
|
if u == v {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
father[v] = u
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(edges); i++ {
|
||||||
|
join(edges[i][0], edges[i][1])
|
||||||
|
}
|
||||||
|
|
||||||
|
source = find(source)
|
||||||
|
destination = find(destination)
|
||||||
|
return source == destination
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
|
@ -142,7 +142,7 @@ for (int i = 0; i < a.size(); i++) {
|
|||||||
### C:
|
### C:
|
||||||
|
|
||||||
### Java:
|
### Java:
|
||||||
|
解法一
|
||||||
```java
|
```java
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
@ -160,6 +160,42 @@ class Main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
解法二
|
||||||
|
```java
|
||||||
|
// 为了还原题目本意,先把原数组复制到扩展长度后的新数组,然后不再使用原数组、原地对新数组进行操作。
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
String s = sc.next();
|
||||||
|
int len = s.length();
|
||||||
|
for (int i = 0; i < s.length(); i++) {
|
||||||
|
if (s.charAt(i) >= 0 && s.charAt(i) <= '9') {
|
||||||
|
len += 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char[] ret = new char[len];
|
||||||
|
for (int i = 0; i < s.length(); i++) {
|
||||||
|
ret[i] = s.charAt(i);
|
||||||
|
}
|
||||||
|
for (int i = s.length() - 1, j = len - 1; i >= 0; i--) {
|
||||||
|
if ('0' <= ret[i] && ret[i] <= '9') {
|
||||||
|
ret[j--] = 'r';
|
||||||
|
ret[j--] = 'e';
|
||||||
|
ret[j--] = 'b';
|
||||||
|
ret[j--] = 'm';
|
||||||
|
ret[j--] = 'u';
|
||||||
|
ret[j--] = 'n';
|
||||||
|
} else {
|
||||||
|
ret[j--] = ret[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println(ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Go:
|
### Go:
|
||||||
````go
|
````go
|
||||||
|
Reference in New Issue
Block a user