From 3d37d573fd625738c6b61506089fd64b379bc1ec Mon Sep 17 00:00:00 2001 From: CaoHongHai Date: Fri, 6 Jan 2023 21:42:28 +0800 Subject: [PATCH 1/8] feat: add typescript solutions to lc problem: No.0503 --- .../0503.Next Greater Element II/README.md | 16 ++++++++++++++++ .../0503.Next Greater Element II/README_EN.md | 16 ++++++++++++++++ .../0503.Next Greater Element II/Solution.ts | 12 ++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 solution/0500-0599/0503.Next Greater Element II/Solution.ts diff --git a/solution/0500-0599/0503.Next Greater Element II/README.md b/solution/0500-0599/0503.Next Greater Element II/README.md index 288cab9c8ea5c..79b0563d3e885 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README.md +++ b/solution/0500-0599/0503.Next Greater Element II/README.md @@ -251,6 +251,22 @@ func nextGreaterElements(nums []int) []int { } ``` +### **TypeScript** +```ts +function nextGreaterElements(nums: number[]): number[] { + let stack: number[] = [], len = nums.length; + let res: number[] = new Array(len).fill(-1); + for (let i = 0; i < 2 * len - 1; i++) { + while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[i % len]) { + res[stack[stack.length - 1]] = nums[i % len]; + stack.pop(); + } + stack.push(i % len); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/0500-0599/0503.Next Greater Element II/README_EN.md b/solution/0500-0599/0503.Next Greater Element II/README_EN.md index b4328a47b230c..1db190b471f78 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README_EN.md +++ b/solution/0500-0599/0503.Next Greater Element II/README_EN.md @@ -239,6 +239,22 @@ func nextGreaterElements(nums []int) []int { } ``` +### **TypeScript** +```ts +function nextGreaterElements(nums: number[]): number[] { + let stack: number[] = [], len = nums.length; + let res: number[] = new Array(len).fill(-1); + for (let i = 0; i < 2 * len - 1; i++) { + while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[i % len]) { + res[stack[stack.length - 1]] = nums[i % len]; + stack.pop(); + } + stack.push(i % len); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/0500-0599/0503.Next Greater Element II/Solution.ts b/solution/0500-0599/0503.Next Greater Element II/Solution.ts new file mode 100644 index 0000000000000..869772ab2bc1b --- /dev/null +++ b/solution/0500-0599/0503.Next Greater Element II/Solution.ts @@ -0,0 +1,12 @@ +function nextGreaterElements(nums: number[]): number[] { + let stack: number[] = [], len = nums.length; + let res: number[] = new Array(len).fill(-1); + for (let i = 0; i < 2 * len - 1; i++) { + while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[i % len]) { + res[stack[stack.length - 1]] = nums[i % len]; + stack.pop(); + } + stack.push(i % len); + } + return res; +}; \ No newline at end of file From 260f3e59dc34d5168546d23a7bfebe5083be2d44 Mon Sep 17 00:00:00 2001 From: caohonghai Date: Fri, 6 Jan 2023 21:55:17 +0800 Subject: [PATCH 2/8] Update solution/0500-0599/0503.Next Greater Element II/README.md Co-authored-by: YangQi <2419731931@qq.com> --- solution/0500-0599/0503.Next Greater Element II/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/solution/0500-0599/0503.Next Greater Element II/README.md b/solution/0500-0599/0503.Next Greater Element II/README.md index 79b0563d3e885..b2a954c71d82d 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README.md +++ b/solution/0500-0599/0503.Next Greater Element II/README.md @@ -252,6 +252,7 @@ func nextGreaterElements(nums []int) []int { ``` ### **TypeScript** + ```ts function nextGreaterElements(nums: number[]): number[] { let stack: number[] = [], len = nums.length; From 9d87a568ed471735dd49a8eeea68e010c7431340 Mon Sep 17 00:00:00 2001 From: caohonghai Date: Fri, 6 Jan 2023 22:10:32 +0800 Subject: [PATCH 3/8] Update README_EN.md --- solution/0500-0599/0503.Next Greater Element II/README_EN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/solution/0500-0599/0503.Next Greater Element II/README_EN.md b/solution/0500-0599/0503.Next Greater Element II/README_EN.md index 1db190b471f78..42763e44c9236 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README_EN.md +++ b/solution/0500-0599/0503.Next Greater Element II/README_EN.md @@ -240,6 +240,7 @@ func nextGreaterElements(nums []int) []int { ``` ### **TypeScript** + ```ts function nextGreaterElements(nums: number[]): number[] { let stack: number[] = [], len = nums.length; From 5cc9721a28d66a0cbfb1b40a044f1898a6a10398 Mon Sep 17 00:00:00 2001 From: caohonghai Date: Fri, 6 Jan 2023 22:11:13 +0800 Subject: [PATCH 4/8] Update solution/0500-0599/0503.Next Greater Element II/Solution.ts Co-authored-by: YangQi <2419731931@qq.com> --- .../0500-0599/0503.Next Greater Element II/Solution.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/solution/0500-0599/0503.Next Greater Element II/Solution.ts b/solution/0500-0599/0503.Next Greater Element II/Solution.ts index 869772ab2bc1b..8ff7c318358c7 100644 --- a/solution/0500-0599/0503.Next Greater Element II/Solution.ts +++ b/solution/0500-0599/0503.Next Greater Element II/Solution.ts @@ -2,11 +2,12 @@ function nextGreaterElements(nums: number[]): number[] { let stack: number[] = [], len = nums.length; let res: number[] = new Array(len).fill(-1); for (let i = 0; i < 2 * len - 1; i++) { - while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[i % len]) { - res[stack[stack.length - 1]] = nums[i % len]; + const j = i % len; + while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[j]) { + res[stack[stack.length - 1]] = nums[j]; stack.pop(); } - stack.push(i % len); + stack.push(j); } return res; }; \ No newline at end of file From c09b075ecf63e9f36ff3dacbf2f07664b4d4ce7f Mon Sep 17 00:00:00 2001 From: caohonghai Date: Fri, 6 Jan 2023 22:11:19 +0800 Subject: [PATCH 5/8] Update solution/0500-0599/0503.Next Greater Element II/Solution.ts Co-authored-by: YangQi <2419731931@qq.com> --- solution/0500-0599/0503.Next Greater Element II/Solution.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/0500-0599/0503.Next Greater Element II/Solution.ts b/solution/0500-0599/0503.Next Greater Element II/Solution.ts index 8ff7c318358c7..cde9d3d838b33 100644 --- a/solution/0500-0599/0503.Next Greater Element II/Solution.ts +++ b/solution/0500-0599/0503.Next Greater Element II/Solution.ts @@ -1,6 +1,6 @@ function nextGreaterElements(nums: number[]): number[] { - let stack: number[] = [], len = nums.length; - let res: number[] = new Array(len).fill(-1); + const stack: number[] = [], len = nums.length; + const res: number[] = new Array(len).fill(-1); for (let i = 0; i < 2 * len - 1; i++) { const j = i % len; while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[j]) { From 278f06562b9e9c428e9e28ec4ae51c539c043b15 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 6 Jan 2023 22:21:55 +0800 Subject: [PATCH 6/8] Update README.md --- .../0500-0599/0503.Next Greater Element II/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/solution/0500-0599/0503.Next Greater Element II/README.md b/solution/0500-0599/0503.Next Greater Element II/README.md index b2a954c71d82d..c6d11195273cc 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README.md +++ b/solution/0500-0599/0503.Next Greater Element II/README.md @@ -255,17 +255,21 @@ func nextGreaterElements(nums []int) []int { ```ts function nextGreaterElements(nums: number[]): number[] { - let stack: number[] = [], len = nums.length; + let stack: number[] = [], + len = nums.length; let res: number[] = new Array(len).fill(-1); for (let i = 0; i < 2 * len - 1; i++) { - while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[i % len]) { + while ( + stack.length !== 0 && + nums[stack[stack.length - 1]] < nums[i % len] + ) { res[stack[stack.length - 1]] = nums[i % len]; stack.pop(); } stack.push(i % len); } return res; -}; +} ``` ### **...** From b4bc492a31c6f21c72afeee80a4eb594b9a417ef Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 6 Jan 2023 22:22:15 +0800 Subject: [PATCH 7/8] Update README_EN.md --- .../0503.Next Greater Element II/README_EN.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/solution/0500-0599/0503.Next Greater Element II/README_EN.md b/solution/0500-0599/0503.Next Greater Element II/README_EN.md index 42763e44c9236..841de5c9241a5 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README_EN.md +++ b/solution/0500-0599/0503.Next Greater Element II/README_EN.md @@ -243,17 +243,21 @@ func nextGreaterElements(nums []int) []int { ```ts function nextGreaterElements(nums: number[]): number[] { - let stack: number[] = [], len = nums.length; + let stack: number[] = [], + len = nums.length; let res: number[] = new Array(len).fill(-1); for (let i = 0; i < 2 * len - 1; i++) { - while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[i % len]) { + while ( + stack.length !== 0 && + nums[stack[stack.length - 1]] < nums[i % len] + ) { res[stack[stack.length - 1]] = nums[i % len]; stack.pop(); } stack.push(i % len); } return res; -}; +} ``` ### **...** From 38e9c4f0d799a7f24c77b40621f3864730305359 Mon Sep 17 00:00:00 2001 From: Yang Libin Date: Fri, 6 Jan 2023 22:22:29 +0800 Subject: [PATCH 8/8] Update Solution.ts --- .../0503.Next Greater Element II/Solution.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/solution/0500-0599/0503.Next Greater Element II/Solution.ts b/solution/0500-0599/0503.Next Greater Element II/Solution.ts index cde9d3d838b33..a0b5023c489d4 100644 --- a/solution/0500-0599/0503.Next Greater Element II/Solution.ts +++ b/solution/0500-0599/0503.Next Greater Element II/Solution.ts @@ -1,13 +1,16 @@ function nextGreaterElements(nums: number[]): number[] { - const stack: number[] = [], len = nums.length; - const res: number[] = new Array(len).fill(-1); + let stack: number[] = [], + len = nums.length; + let res: number[] = new Array(len).fill(-1); for (let i = 0; i < 2 * len - 1; i++) { - const j = i % len; - while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[j]) { - res[stack[stack.length - 1]] = nums[j]; + while ( + stack.length !== 0 && + nums[stack[stack.length - 1]] < nums[i % len] + ) { + res[stack[stack.length - 1]] = nums[i % len]; stack.pop(); } - stack.push(j); + stack.push(i % len); } return res; -}; \ No newline at end of file +}