From a2f3f2d82b8dbd31261645cdce326b5e1d714101 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:37:52 -0500 Subject: [PATCH] Time: 190 ms (31.93%), Space: 65.1 MB (32.49%) - LeetHub --- 2624-snail-traversal/2624-snail-traversal.js | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 2624-snail-traversal/2624-snail-traversal.js diff --git a/2624-snail-traversal/2624-snail-traversal.js b/2624-snail-traversal/2624-snail-traversal.js new file mode 100644 index 0000000..5809004 --- /dev/null +++ b/2624-snail-traversal/2624-snail-traversal.js @@ -0,0 +1,25 @@ +/** + * @param {number} rowsCount + * @param {number} colsCount + * @return {Array>} + */ +Array.prototype.snail = function(rowsCount, colsCount) { + n = this.length + + if (n !== rowsCount * colsCount) return [] + + arr = Array(rowsCount) + for (let i = 0; i < rowsCount; ++i) arr[i] = Array(colsCount) + + for (let i = 0; i < n; ++i) { + let col = parseInt(i / rowsCount) + let row = col % 2 === 0 ? i % rowsCount : rowsCount - (i % rowsCount) - 1 + arr[row][col] = this[i] + } + return arr +} + +/** + * const arr = [1,2,3,4]; + * arr.snail(1,4); // [[1,2,3,4]] + */ \ No newline at end of file