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
};
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