题解 | 蛇形矩阵
蛇形矩阵
https://www.nowcoder.com/practice/f228a074c5274619b26be544962375e1
n = int(input())
a = [[0] * n for _ in range(n)]
x, y, d = 0, 0, 0
dirs = [(-1, 1), (1, -1)]
num = 1
while num <= n * n:
a[x][y] = num
num += 1
nx = x + dirs[d][0]
ny = y + dirs[d][1]
if nx < 0 or nx >= n or ny < 0 or ny >= n or a[nx][ny] != 0:
if d == 0:
if y + 1 < n and a[x][y+1] == 0:
y += 1
else:
x += 1
else:
if x + 1 < n and a[x+1][y] == 0:
x += 1
else:
y += 1
d = (d + 1) % 2
else:
x, y = nx, ny
for row in a:
print(' '.join(map(str, row)))