反螺旋矩阵:随机给定N*M个数(无重复),先将这N*M个数排序,然后升序放置到螺旋矩阵当中:
如,给定3*5共15个数1-15,则螺旋矩阵输出如下:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
import numpy as np N,M=map(int,input().split()) A=np.array(list(map(int,input().split()))) A.sort() B=[[None for _ in range(M)] for _ in range(N)] i=0 j=0 k=0 direction=0 while i<M*N: if direction==0: if k==M&nbs***bsp;B[j][k]!=None: direction=1 j+=1 k-=1 else: B[j][k]=A[i] k+=1 i+=1 elif direction==1: if j==N&nbs***bsp;B[j][k]!=None: direction=2 k-=1 j-=1 else: B[j][k]=A[i] j+=1 i+=1 elif direction==2: if k<0&nbs***bsp;B[j][k]!=None: direction=3 j-=1 k+=1 else: B[j][k]=A[i] k-=1 i+=1 else: if j<0&nbs***bsp;B[j][k]!=None: direction=0 k+=1 j+=1 else: B[j][k]=A[i] j-=1 i+=1 for i in range(N): for j in range(M): print(B[i][j],end=' ') print()