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 b2cbcd0

Browse files
committed
feat: add ts solution to lc problem: No.1761
No.1761.Minimum Degree of a Connected Trio in a Graph
1 parent 855da18 commit b2cbcd0

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‎

Lines changed: 33 additions & 2 deletions
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‎

Lines changed: 29 additions & 0 deletions
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
```
Lines changed: 24 additions & 0 deletions
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)

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