var generateMatrix = function(n) {
const mat = new Array(n)
for (let i = 0; i < n; i++) {
mat[i] = new Array(n)
}
let l = 0,
r = n - 1,
t = 0,
b = n - 1,
now = 0,
tar = n * n
while (now < tar) {
for (let i = l; i <= r; i++) {
mat[t][i] = ++now
}
for (let i = ++t; i <= b; i++) {
mat[i][r] = ++now
}
for (let i = --r; i >= l; i--) {
mat[b][i] = ++now
}
for (let i = --b; i >= t; i--) {
mat[i][l] = ++now
}
l++
}
return mat
};
Runtime: 52 ms, faster than 85.66% of JavaScript online submissions for Spiral Matrix II.
Memory Usage: 33.8 MB, less than 100.00% of JavaScript online submissions for Spiral Matrix II.
var generateMatrix = function(n) {
const mat = new Array(n)
for (let i = 0; i < n; i++) {
mat[i] = new Array(n)
}
for (let s = 0, e = n - 1, m = 1; s <= e; s++, e--) {
if (s === e) {
mat[s][e] = m++
}
for (let i = s; i <= e - 1; i++) {
mat[s][i] = m++
}
for (let i = s; i <= e - 1; i++) {
mat[i][e] = m++
}
for (let i = e; i >= s + 1; i--) {
mat[e][i] = m++
}
for (let i = e; i >= s + 1; i--) {
mat[i][s] = m++
}
}
return mat
};
Runtime: 60 ms, faster than 34.40% of JavaScript online submissions for Spiral Matrix II.
Memory Usage: 33.9 MB, less than 100.00% of JavaScript online submissions for Spiral Matrix II.
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
mat = [[0 for _ in range(n)] for _ in range(n)]
s = 0
e = n-1
m = 1
while s <= e:
if s == e:
mat[s][e] = m
m += 1
for i in range(s, e):
mat[s][i] = m
m += 1
for i in range(s, e):
mat[i][e] = m
m += 1
for i in range(e, s, -1):
mat[e][i] = m
m += 1
for i in range(e, s, -1):
mat[i][s] = m
m += 1
s += 1
e -= 1
return mat
Runtime: 24 ms, faster than 99.97% of Python3 online submissions for Spiral Matrix II.
Memory Usage: 12.8 MB, less than 100.00% of Python3 online submissions for Spiral Matrix II.