Skip to content

Commit 029cf34

Browse files
committed
https://leetcode.cn/problems/find-mode-in-binary-search-tree/
1 parent 0b54cd6 commit 029cf34

File tree

5 files changed

+42
-19
lines changed

5 files changed

+42
-19
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ leetcode 测试
1010

1111
##### 包含的内容如下
1212

13+
https://leetcode.cn/problems/find-mode-in-binary-search-tree/
14+
1315
https://leetcode.cn/problems/split-a-string-in-balanced-strings/
1416

1517
https://leetcode.cn/problems/maximum-xor-after-operations/
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts";
2+
import { default as groupBy } from "https://cdn.skypack.dev/[email protected]/groupBy?dts";
3+
import inorderTraversal from "../binary-tree-inorder-traversal/index.ts";
4+
export default function findMode(root: TreeNode | null): number[] {
5+
const cnt = groupBy(inorderTraversal(root));
6+
const max = Math.max(...Object.values(cnt).map((v) => v.length));
7+
return Object.keys(cnt)
8+
.filter((k) => cnt[k].length === max)
9+
.map(Number);
10+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { assertEquals } from "https://deno.land/[email protected]/testing/asserts.ts";
2+
import { TreeNodeLeetCodeFromJSON } from "../utils/TreeNodeLeetCodeParse.ts";
3+
import findMode from "./index.ts";
4+
Deno.test("find-mode-in-binary-search-tree", () => {
5+
assertEquals(
6+
[[1, null, 2, 2], [0], [300, 23, 2222, 22, 111, 303]]
7+
.map((a) => findMode(TreeNodeLeetCodeFromJSON(a)))
8+
.map((a) => new Set(a)),
9+
[[2], [0], [303, 2222, 111, 22, 23, 300]].map((a) => new Set(a)),
10+
);
11+
});
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export default function maximumXOR(nums: number[]): number {
2-
return nums.reduce((pre, cur) => pre | cur, 0);
3-
}
1+
export default function maximumXOR(nums: number[]): number {
2+
return nums.reduce((pre, cur) => pre | cur, 0);
3+
}
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
export default function balancedStringSplit(s: string): number {
2-
let ans = 0,
3-
d = 0;
4-
for (let i = 0; i < s.length; ++i) {
5-
const ch = s[i];
6-
if (ch === "L") {
7-
++d;
8-
} else {
9-
--d;
10-
}
11-
if (d === 0) {
12-
++ans;
13-
}
14-
}
15-
return ans;
16-
}
1+
export default function balancedStringSplit(s: string): number {
2+
let ans = 0,
3+
d = 0;
4+
for (let i = 0; i < s.length; ++i) {
5+
const ch = s[i];
6+
if (ch === "L") {
7+
++d;
8+
} else {
9+
--d;
10+
}
11+
if (d === 0) {
12+
++ans;
13+
}
14+
}
15+
return ans;
16+
}

0 commit comments

Comments
 (0)