From 5f31bcbe74443a1241910d7c15d31031faa60ede Mon Sep 17 00:00:00 2001 From: rain84 Date: Fri, 17 May 2024 19:25:59 +0300 Subject: [PATCH 1/4] feat: add TS solution to lc problem: No.530 (#2820) --- .../README.md | 35 +++++++++++++++++++ .../README_EN.md | 35 +++++++++++++++++++ .../Solution.ts | 32 +++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md index 43fd8fa1c8d1f..f795eab5b5ca9 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md @@ -253,6 +253,41 @@ impl Solution { } ``` +```ts +/** + * Definition for a binary tree node. + * class TreeNode { + * val: number + * left: TreeNode | null + * right: TreeNode | null + * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + * } + */ +function getMinimumDifference(root: TreeNode | null): number { + if (!root) return 0 + + let prev = Number.MIN_SAFE_INTEGER + let min = Number.MAX_SAFE_INTEGER + + const dfs = (node: TreeNode | null) => { + if (!node) return + + dfs(node.left) + min = Math.min(min, node.val - prev) + prev = node.val + dfs(node.right) + } + + dfs(root) + + return min + } +``` + diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md index 4fa626743de1d..18a87528bc7e4 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md @@ -246,6 +246,41 @@ impl Solution { } ``` +```ts +/** + * Definition for a binary tree node. + * class TreeNode { + * val: number + * left: TreeNode | null + * right: TreeNode | null + * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + * } + */ +function getMinimumDifference(root: TreeNode | null): number { + if (!root) return 0 + + let prev = Number.MIN_SAFE_INTEGER + let min = Number.MAX_SAFE_INTEGER + + const dfs = (node: TreeNode | null) => { + if (!node) return + + dfs(node.left) + min = Math.min(min, node.val - prev) + prev = node.val + dfs(node.right) + } + + dfs(root) + + return min + } +``` + diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts b/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts new file mode 100644 index 0000000000000..f6004e836f4d0 --- /dev/null +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts @@ -0,0 +1,32 @@ +/** + * Definition for a binary tree node. + * class TreeNode { + * val: number + * left: TreeNode | null + * right: TreeNode | null + * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + * } + */ +function getMinimumDifference(root: TreeNode | null): number { + if (!root) return 0 + + let prev = Number.MIN_SAFE_INTEGER + let min = Number.MAX_SAFE_INTEGER + + const dfs = (node: TreeNode | null) => { + if (!node) return + + dfs(node.left) + min = Math.min(min, node.val - prev) + prev = node.val + dfs(node.right) + } + + dfs(root) + + return min + } \ No newline at end of file From 38f398805a09cb49dd666239ebddcd7d2f22d810 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Sat, 18 May 2024 10:14:15 +0800 Subject: [PATCH 2/4] Update README.md --- .../0500-0599/0530.Minimum Absolute Difference in BST/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md index f795eab5b5ca9..fdbd0acf3e124 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md @@ -253,6 +253,8 @@ impl Solution { } ``` +#### TypeScript + ```ts /** * Definition for a binary tree node. From 7f4eb39be8c57c11494404315d91d73bb72dafc0 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Sat, 18 May 2024 10:14:45 +0800 Subject: [PATCH 3/4] Update README_EN.md --- .../0530.Minimum Absolute Difference in BST/README_EN.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md index 18a87528bc7e4..a27a33f2d4362 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md @@ -246,6 +246,8 @@ impl Solution { } ``` +#### TypeScript + ```ts /** * Definition for a binary tree node. From de7b64e70c5ebbf8b620d6943c0571fe73f71dfb Mon Sep 17 00:00:00 2001 From: yanglbme Date: Sat, 18 May 2024 02:15:57 +0000 Subject: [PATCH 4/4] style: format code and docs with prettier --- .../README.md | 34 +++++++++---------- .../README_EN.md | 34 +++++++++---------- .../Solution.ts | 34 +++++++++---------- 3 files changed, 51 insertions(+), 51 deletions(-) diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md index fdbd0acf3e124..151087a8c52d3 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md @@ -270,24 +270,24 @@ impl Solution { * } */ function getMinimumDifference(root: TreeNode | null): number { - if (!root) return 0 - - let prev = Number.MIN_SAFE_INTEGER - let min = Number.MAX_SAFE_INTEGER - + if (!root) return 0; + + let prev = Number.MIN_SAFE_INTEGER; + let min = Number.MAX_SAFE_INTEGER; + const dfs = (node: TreeNode | null) => { - if (!node) return - - dfs(node.left) - min = Math.min(min, node.val - prev) - prev = node.val - dfs(node.right) - } - - dfs(root) - - return min - } + if (!node) return; + + dfs(node.left); + min = Math.min(min, node.val - prev); + prev = node.val; + dfs(node.right); + }; + + dfs(root); + + return min; +} ``` diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md index a27a33f2d4362..f232f09d055b7 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md @@ -263,24 +263,24 @@ impl Solution { * } */ function getMinimumDifference(root: TreeNode | null): number { - if (!root) return 0 - - let prev = Number.MIN_SAFE_INTEGER - let min = Number.MAX_SAFE_INTEGER - + if (!root) return 0; + + let prev = Number.MIN_SAFE_INTEGER; + let min = Number.MAX_SAFE_INTEGER; + const dfs = (node: TreeNode | null) => { - if (!node) return - - dfs(node.left) - min = Math.min(min, node.val - prev) - prev = node.val - dfs(node.right) - } - - dfs(root) - - return min - } + if (!node) return; + + dfs(node.left); + min = Math.min(min, node.val - prev); + prev = node.val; + dfs(node.right); + }; + + dfs(root); + + return min; +} ``` diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts b/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts index f6004e836f4d0..61275353165c6 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts @@ -12,21 +12,21 @@ * } */ function getMinimumDifference(root: TreeNode | null): number { - if (!root) return 0 - - let prev = Number.MIN_SAFE_INTEGER - let min = Number.MAX_SAFE_INTEGER - + if (!root) return 0; + + let prev = Number.MIN_SAFE_INTEGER; + let min = Number.MAX_SAFE_INTEGER; + const dfs = (node: TreeNode | null) => { - if (!node) return - - dfs(node.left) - min = Math.min(min, node.val - prev) - prev = node.val - dfs(node.right) - } - - dfs(root) - - return min - } \ No newline at end of file + if (!node) return; + + dfs(node.left); + min = Math.min(min, node.val - prev); + prev = node.val; + dfs(node.right); + }; + + dfs(root); + + return min; +}