Skip to content

Commit fd81d1e

Browse files
committed
https://leetcode.cn/problems/divide-nodes-into-the-maximum-number-of-groups
1 parent b6874e8 commit fd81d1e

File tree

3 files changed

+49
-2
lines changed

3 files changed

+49
-2
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ Step 2. Add the dependency
4545

4646
<summary>展开查看</summary>
4747

48+
https://leetcode.cn/problems/divide-nodes-into-the-maximum-number-of-groups
49+
4850
https://leetcode.cn/problems/closest-dessert-cost
4951

5052
https://leetcode.cn/problems/circular-sentence
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
function magnificentSets(n: number, edges: number[][]): number {
2+
const e: number[][] = Array(n + 1)
3+
.fill(0)
4+
.map(() => [] as number[]);
5+
6+
for (const [a, b] of edges) {
7+
e[a].push(b);
8+
e[b].push(a);
9+
}
10+
const mp = new Map<number, number>();
11+
12+
for (let i = 1; i <= n; i++) {
13+
const q = [i];
14+
const dis = Array<number>(n + 1).fill(0);
15+
dis[i] = 1;
16+
let mn = n;
17+
let mx = 1;
18+
19+
while (q.length) {
20+
const x = q[0];
21+
q.shift();
22+
23+
mn = Math.min(x, mn);
24+
25+
for (const d of e[x]) {
26+
if (dis[d] == 0) {
27+
dis[d] = dis[x] + 1;
28+
mx = Math.max(mx, dis[d]);
29+
q.push(d);
30+
}
31+
if (Math.abs(dis[d] - dis[x]) !== 1) {
32+
return -1;
33+
}
34+
}
35+
}
36+
mp.set(mn, Math.max(mx, mp.get(mn) ?? 0));
37+
}
38+
39+
let ans = 0;
40+
for (const v of mp.values()) {
41+
ans += v;
42+
}
43+
return ans;
44+
}
45+
export default magnificentSets;

minimum-score-of-a-path-between-two-cities/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ function minScore(_n: number, roads: number[][]): number {
77
}
88
let ans = Infinity;
99

10-
for (const [i, j, d] of roads) {
11-
if (uf.connected(1, i) && uf.connected(1, j)) {
10+
for (const [i, _, d] of roads) {
11+
if (uf.connected(1, i)) {
1212
ans = Math.min(ans, d);
1313
}
1414
}

0 commit comments

Comments
 (0)