Skip to content

Commit 12cebd5

Browse files
authored
feat: add ts solution to lc problem: No.1761 (#1549)
No.1761.Minimum Degree of a Connected Trio in a Graph
1 parent 855da18 commit 12cebd5

File tree

3 files changed

+86
-2
lines changed

3 files changed

+86
-2
lines changed

solution/1700-1799/1761.Minimum Degree of a Connected Trio in a Graph/README.md

+33-2
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@
5454

5555
**方法一:暴力枚举**
5656

57-
我们先将所有边存入邻接矩阵 $g$ 中,再将每个节点的度数存入数组 $deg$ 中。
57+
我们先将所有边存入邻接矩阵 $g$ 中,再将每个节点的度数存入数组 $deg$ 中。初始化答案 $ans=+\infty$。
5858

59-
然后枚举所有的三元组 $(i, j, k)$,其中 $i \lt j \lt k$,如果 $g[i][j] = g[j][k] = g[i][k] = 1$,则说明这三个节点构成了一个连通三元组,此时更新答案为 $deg[i] + deg[j] + deg[k] - 6$。返回最小的符合条件的答案即可。
59+
然后枚举所有的三元组 $(i, j, k)$,其中 $i \lt j \lt k$,如果 $g[i][j] = g[j][k] = g[i][k] = 1$,则说明这三个节点构成了一个连通三元组,此时更新答案为 $ans = \min(ans, deg[i] + deg[j] + deg[k] - 6)$。
60+
61+
枚举完所有的三元组后,如果答案仍然为 $+\infty$,说明图中不存在连通三元组,返回 $-1$,否则返回答案。
6062

6163
时间复杂度 $O(n^3)$,空间复杂度 $O(n^2)$。其中 $n$ 为节点数。
6264

@@ -192,6 +194,35 @@ func min(a, b int) int {
192194
}
193195
```
194196

197+
### **TypeScript**
198+
199+
```ts
200+
function minTrioDegree(n: number, edges: number[][]): number {
201+
const g = Array.from({ length: n }, () => Array(n).fill(false));
202+
const deg: number[] = Array(n).fill(0);
203+
for (let [u, v] of edges) {
204+
u--;
205+
v--;
206+
g[u][v] = g[v][u] = true;
207+
++deg[u];
208+
++deg[v];
209+
}
210+
let ans = Infinity;
211+
for (let i = 0; i < n; ++i) {
212+
for (let j = i + 1; j < n; ++j) {
213+
if (g[i][j]) {
214+
for (let k = j + 1; k < n; ++k) {
215+
if (g[i][k] && g[j][k]) {
216+
ans = Math.min(ans, deg[i] + deg[j] + deg[k] - 6);
217+
}
218+
}
219+
}
220+
}
221+
}
222+
return ans === Infinity ? -1 : ans;
223+
}
224+
```
225+
195226
### **...**
196227

197228
```

solution/1700-1799/1761.Minimum Degree of a Connected Trio in a Graph/README_EN.md

+29
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,35 @@ func min(a, b int) int {
174174
}
175175
```
176176

177+
### **TypeScript**
178+
179+
```ts
180+
function minTrioDegree(n: number, edges: number[][]): number {
181+
const g = Array.from({ length: n }, () => Array(n).fill(false));
182+
const deg: number[] = Array(n).fill(0);
183+
for (let [u, v] of edges) {
184+
u--;
185+
v--;
186+
g[u][v] = g[v][u] = true;
187+
++deg[u];
188+
++deg[v];
189+
}
190+
let ans = Infinity;
191+
for (let i = 0; i < n; ++i) {
192+
for (let j = i + 1; j < n; ++j) {
193+
if (g[i][j]) {
194+
for (let k = j + 1; k < n; ++k) {
195+
if (g[i][k] && g[j][k]) {
196+
ans = Math.min(ans, deg[i] + deg[j] + deg[k] - 6);
197+
}
198+
}
199+
}
200+
}
201+
}
202+
return ans === Infinity ? -1 : ans;
203+
}
204+
```
205+
177206
### **...**
178207

179208
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
function minTrioDegree(n: number, edges: number[][]): number {
2+
const g = Array.from({ length: n }, () => Array(n).fill(false));
3+
const deg: number[] = Array(n).fill(0);
4+
for (let [u, v] of edges) {
5+
u--;
6+
v--;
7+
g[u][v] = g[v][u] = true;
8+
++deg[u];
9+
++deg[v];
10+
}
11+
let ans = Infinity;
12+
for (let i = 0; i < n; ++i) {
13+
for (let j = i + 1; j < n; ++j) {
14+
if (g[i][j]) {
15+
for (let k = j + 1; k < n; ++k) {
16+
if (g[i][k] && g[j][k]) {
17+
ans = Math.min(ans, deg[i] + deg[j] + deg[k] - 6);
18+
}
19+
}
20+
}
21+
}
22+
}
23+
return ans === Infinity ? -1 : ans;
24+
}

0 commit comments

Comments
 (0)