题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
队列一遍过
N = int(input()) martix = [[0] * N for _ in range(N)] def snake(N=4): n = N * (1 + N) / 2 count = 1 queue = [[0, 0]] while queue and n > 0: item = queue.pop(0) martix[item[0]][item[1]] = count count += 1 if not queue or queue[-1] != [item[0] + 1, item[1]]: queue.append([item[0] + 1, item[1]]) if not queue or queue[-1] != [item[0], item[1] + 1]: queue.append([item[0], item[1] + 1]) n -= 1 snake(N) def fprint(martix): r = 0 while r < len(martix): c = 0 while c < len(martix[0]): if martix[r][c] != 0: print(martix[r][c], end=' ') c+=1 print() r+=1 fprint(martix)