From 99d004ea18a758f47bb23d92d6d59c290ca385ef Mon Sep 17 00:00:00 2001 From: YangFong <70502828+YangFong@users.noreply.github.com> Date: Tue, 18 Jan 2022 19:37:15 +0800 Subject: [PATCH] feat: add typescript solution to lc problem: No.0539 No.0539. Minimum Time Difference --- .../0539.Minimum Time Difference/README.md | 21 +++++++++++++++++++ .../0539.Minimum Time Difference/README_EN.md | 21 +++++++++++++++++++ .../0539.Minimum Time Difference/Solution.ts | 16 ++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 solution/0500-0599/0539.Minimum Time Difference/Solution.ts diff --git a/solution/0500-0599/0539.Minimum Time Difference/README.md b/solution/0500-0599/0539.Minimum Time Difference/README.md index f08da0d536e2b..a5b0820712116 100644 --- a/solution/0500-0599/0539.Minimum Time Difference/README.md +++ b/solution/0500-0599/0539.Minimum Time Difference/README.md @@ -144,6 +144,27 @@ func min(a, b int) int { } ``` +### **TypeScript** + +```ts +function findMinDifference(timePoints: string[]): number { + const mins = timePoints + .map(item => Number(item.slice(0, 2)) * 60 + Number(item.slice(3, 5))) + .sort((a, b) => a - b); + const n = mins.length; + let res = Infinity; + for (let i = 0; i < n - 1; i++) { + res = Math.min(res, mins[i + 1] - mins[i]); + } + + const first = mins[0] + 24 * 60; + const last = mins[n - 1]; + res = Math.min(res, first - last); + + return res; +} +``` + ### **...** ``` diff --git a/solution/0500-0599/0539.Minimum Time Difference/README_EN.md b/solution/0500-0599/0539.Minimum Time Difference/README_EN.md index 33c266b8e1a6d..2313cafa20a77 100644 --- a/solution/0500-0599/0539.Minimum Time Difference/README_EN.md +++ b/solution/0500-0599/0539.Minimum Time Difference/README_EN.md @@ -122,6 +122,27 @@ func min(a, b int) int { } ``` +### **TypeScript** + +```ts +function findMinDifference(timePoints: string[]): number { + const mins = timePoints + .map(item => Number(item.slice(0, 2)) * 60 + Number(item.slice(3, 5))) + .sort((a, b) => a - b); + const n = mins.length; + let res = Infinity; + for (let i = 0; i < n - 1; i++) { + res = Math.min(res, mins[i + 1] - mins[i]); + } + + const first = mins[0] + 24 * 60; + const last = mins[n - 1]; + res = Math.min(res, first - last); + + return res; +} +``` + ### **...** ``` diff --git a/solution/0500-0599/0539.Minimum Time Difference/Solution.ts b/solution/0500-0599/0539.Minimum Time Difference/Solution.ts new file mode 100644 index 0000000000000..b1dd380eb5f72 --- /dev/null +++ b/solution/0500-0599/0539.Minimum Time Difference/Solution.ts @@ -0,0 +1,16 @@ +function findMinDifference(timePoints: string[]): number { + const mins = timePoints + .map(item => Number(item.slice(0, 2)) * 60 + Number(item.slice(3, 5))) + .sort((a, b) => a - b); + const n = mins.length; + let res = Infinity; + for (let i = 0; i < n - 1; i++) { + res = Math.min(res, mins[i + 1] - mins[i]); + } + + const first = mins[0] + 24 * 60; + const last = mins[n - 1]; + res = Math.min(res, first - last); + + return res; +}