Skip to content

Commit 79d7050

Browse files
committed
https://leetcode.cn/problems/minimum-fuel-cost-to-report-to-the-capital
1 parent 6ba3972 commit 79d7050

File tree

3 files changed

+59
-28
lines changed

3 files changed

+59
-28
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/minimum-fuel-cost-to-report-to-the-capital
49+
4850
https://leetcode.cn/problems/closest-nodes-queries-in-a-binary-search-tree
4951

5052
https://leetcode.cn/problems/number-of-unequal-triplets-in-array
Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
import { assertEquals } from "asserts";
2-
import { TreeNodeLeetCodeFromJSON } from "../utils/TreeNodeLeetCodeParse.ts";
3-
import closestNodes from "./index.ts";
4-
Deno.test("closest-nodes-queries-in-a-binary-search-tree", () => {
5-
const root = [
6-
6,
7-
2,
8-
13,
9-
1,
10-
4,
11-
9,
12-
15,
13-
null,
14-
null,
15-
null,
16-
null,
17-
null,
18-
null,
19-
14,
20-
],
21-
queries = [2, 5, 16];
22-
const result = [
23-
[2, 2],
24-
[4, 6],
25-
[15, -1],
26-
];
27-
assertEquals(closestNodes(TreeNodeLeetCodeFromJSON(root), queries), result);
28-
});
1+
import { assertEquals } from "asserts";
2+
import { TreeNodeLeetCodeFromJSON } from "../utils/TreeNodeLeetCodeParse.ts";
3+
import closestNodes from "./index.ts";
4+
Deno.test("closest-nodes-queries-in-a-binary-search-tree", () => {
5+
const root = [
6+
6,
7+
2,
8+
13,
9+
1,
10+
4,
11+
9,
12+
15,
13+
null,
14+
null,
15+
null,
16+
null,
17+
null,
18+
null,
19+
14,
20+
],
21+
queries = [2, 5, 16];
22+
const result = [
23+
[2, 2],
24+
[4, 6],
25+
[15, -1],
26+
];
27+
assertEquals(closestNodes(TreeNodeLeetCodeFromJSON(root), queries), result);
28+
});
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
export default function minimumFuelCost(
2+
roads: number[][],
3+
seats: number,
4+
): number {
5+
let ans = 0;
6+
const g = Array(roads.length + 1)
7+
.fill(0)
8+
.map(() => Array<number>());
9+
10+
for (const e of roads) {
11+
const [x, y] = e;
12+
13+
g[x].push(y);
14+
g[y].push(x);
15+
}
16+
function dfs(x: number, f: number): number {
17+
let size = 1;
18+
19+
for (const y of g[x]) {
20+
if (y != f) {
21+
size += dfs(y, x);
22+
}
23+
}
24+
if (x > 0) ans += Math.floor((size + seats - 1) / seats);
25+
return size;
26+
}
27+
dfs(0, -1);
28+
return ans;
29+
}

0 commit comments

Comments
 (0)