From a552992240582684c1e5bd01e92d4cc9b3b63827 Mon Sep 17 00:00:00 2001 From: lo0b0o Date: Sun, 2 May 2021 22:12:43 +0800 Subject: [PATCH 1/3] add js solution to leetcode problem: no.189 --- solution/0100-0199/0189.Rotate Array/README.md | 14 ++++++++++++++ solution/0100-0199/0189.Rotate Array/README_EN.md | 14 ++++++++++++++ solution/0100-0199/0189.Rotate Array/Solution.js | 9 +++++++++ 3 files changed, 37 insertions(+) create mode 100644 solution/0100-0199/0189.Rotate Array/Solution.js diff --git a/solution/0100-0199/0189.Rotate Array/README.md b/solution/0100-0199/0189.Rotate Array/README.md index 9cd7a42749424..930f58037a74a 100644 --- a/solution/0100-0199/0189.Rotate Array/README.md +++ b/solution/0100-0199/0189.Rotate Array/README.md @@ -119,6 +119,20 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[]} nums + * @param {number} k + * @return {void} Do not return anything, modify nums in-place instead. + */ +var rotate = function (nums, k) { + k %= nums.length; + nums.splice(0, 0, ...nums.splice(-k, k)) +}; +``` + ### **...** ``` diff --git a/solution/0100-0199/0189.Rotate Array/README_EN.md b/solution/0100-0199/0189.Rotate Array/README_EN.md index a741bc040e2e0..de5ce5349af43 100644 --- a/solution/0100-0199/0189.Rotate Array/README_EN.md +++ b/solution/0100-0199/0189.Rotate Array/README_EN.md @@ -98,6 +98,20 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[]} nums + * @param {number} k + * @return {void} Do not return anything, modify nums in-place instead. + */ +var rotate = function (nums, k) { + k %= nums.length; + nums.splice(0, 0, ...nums.splice(-k, k)) +}; +``` + ### **...** ``` diff --git a/solution/0100-0199/0189.Rotate Array/Solution.js b/solution/0100-0199/0189.Rotate Array/Solution.js new file mode 100644 index 0000000000000..b4a1fcfd28948 --- /dev/null +++ b/solution/0100-0199/0189.Rotate Array/Solution.js @@ -0,0 +1,9 @@ +/** + * @param {number[]} nums + * @param {number} k + * @return {void} Do not return anything, modify nums in-place instead. + */ +var rotate = function (nums, k) { + k %= nums.length; + nums.splice(0, 0, ...nums.splice(-k, k)) +}; \ No newline at end of file From e0987528bfbef21748e853c018a28c4135227d63 Mon Sep 17 00:00:00 2001 From: lo0b0o Date: Sun, 2 May 2021 22:15:50 +0800 Subject: [PATCH 2/3] add js solution to leetcode problem: no.54 --- .../0000-0099/0054.Spiral Matrix/README.md | 31 +++++++++++++++++++ .../0000-0099/0054.Spiral Matrix/README_EN.md | 31 +++++++++++++++++++ .../0000-0099/0054.Spiral Matrix/Solution.js | 26 ++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 solution/0000-0099/0054.Spiral Matrix/Solution.js diff --git a/solution/0000-0099/0054.Spiral Matrix/README.md b/solution/0000-0099/0054.Spiral Matrix/README.md index 1720727186a47..a133502a7157b 100644 --- a/solution/0000-0099/0054.Spiral Matrix/README.md +++ b/solution/0000-0099/0054.Spiral Matrix/README.md @@ -114,6 +114,37 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[][]} matrix + * @return {number[]} + */ +var spiralOrder = function (matrix) { + let m = matrix.length; + if (m === 0) return []; + let res = []; + let top = 0, bottom = m - 1, left = 0, right = matrix[0].length - 1; + while (left < right && bottom > top) { + for (let i = left; i < right; i++) res.push(matrix[top][i]); + for (let i = top; i < bottom; i++) res.push(matrix[i][right]); + for (let i = right; i > left; i--) res.push(matrix[bottom][i]); + for (let i = bottom; i > top; i--) res.push(matrix[i][left]); + top++; + bottom--; + left++; + right--; + } + if (left === right) { + for (i = top; i <= bottom; i++) res.push(matrix[i][left]); + } else if (top === bottom) { + for (i = left; i <= right; i++) res.push(matrix[top][i]); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/0000-0099/0054.Spiral Matrix/README_EN.md b/solution/0000-0099/0054.Spiral Matrix/README_EN.md index 58b26d64d3263..c75037b01ba8b 100644 --- a/solution/0000-0099/0054.Spiral Matrix/README_EN.md +++ b/solution/0000-0099/0054.Spiral Matrix/README_EN.md @@ -103,6 +103,37 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[][]} matrix + * @return {number[]} + */ +var spiralOrder = function (matrix) { + let m = matrix.length; + if (m === 0) return []; + let res = []; + let top = 0, bottom = m - 1, left = 0, right = matrix[0].length - 1; + while (left < right && bottom > top) { + for (let i = left; i < right; i++) res.push(matrix[top][i]); + for (let i = top; i < bottom; i++) res.push(matrix[i][right]); + for (let i = right; i > left; i--) res.push(matrix[bottom][i]); + for (let i = bottom; i > top; i--) res.push(matrix[i][left]); + top++; + bottom--; + left++; + right--; + } + if (left === right) { + for (i = top; i <= bottom; i++) res.push(matrix[i][left]); + } else if (top === bottom) { + for (i = left; i <= right; i++) res.push(matrix[top][i]); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/0000-0099/0054.Spiral Matrix/Solution.js b/solution/0000-0099/0054.Spiral Matrix/Solution.js new file mode 100644 index 0000000000000..e48fc1ed965b9 --- /dev/null +++ b/solution/0000-0099/0054.Spiral Matrix/Solution.js @@ -0,0 +1,26 @@ +/** + * @param {number[][]} matrix + * @return {number[]} + */ +var spiralOrder = function (matrix) { + let m = matrix.length; + if (m === 0) return []; + let res = []; + let top = 0, bottom = m - 1, left = 0, right = matrix[0].length - 1; + while (left < right && bottom > top) { + for (let i = left; i < right; i++) res.push(matrix[top][i]); + for (let i = top; i < bottom; i++) res.push(matrix[i][right]); + for (let i = right; i > left; i--) res.push(matrix[bottom][i]); + for (let i = bottom; i > top; i--) res.push(matrix[i][left]); + top++; + bottom--; + left++; + right--; + } + if (left === right) { + for (i = top; i <= bottom; i++) res.push(matrix[i][left]); + } else if (top === bottom) { + for (i = left; i <= right; i++) res.push(matrix[top][i]); + } + return res; +}; \ No newline at end of file From b8e47d54db0c0a4c0638578c2cdd485194aaddaf Mon Sep 17 00:00:00 2001 From: lo0b0o Date: Sun, 2 May 2021 22:29:22 +0800 Subject: [PATCH 3/3] add some discriptions --- solution/0100-0199/0189.Rotate Array/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/solution/0100-0199/0189.Rotate Array/README.md b/solution/0100-0199/0189.Rotate Array/README.md index 930f58037a74a..6b691c36584e5 100644 --- a/solution/0100-0199/0189.Rotate Array/README.md +++ b/solution/0100-0199/0189.Rotate Array/README.md @@ -121,6 +121,9 @@ class Solution { ### **JavaScript** + +使用原生 API 将数组的 `k~n-1` 范围内的元素插入到前面 + ```js /** * @param {number[]} nums