蓝桥杯-回形取数
題目描述
回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位于矩陣左上角,方向向下。
輸入描述
輸入第一行是兩個不超過 200200 的正整數 m,n,表示矩陣的行和列。接下來 mm 行每行 nn 個整數,表示這個矩陣。
輸出描述
輸出只有一行,共 mn 個數,為輸入矩陣回形取數得到的結果。數之間用一個空格分隔,行末不要有多余的空格。
輸入輸出樣例
3 3 1 2 3 4 5 6 7 8 9 1 4 7 8 9 6 3 2 5運行限制
- 最大運行時間:1s
- 最大運行內存: 128M
- dir = [(1,0),(0,1),(-1,0),(0,-1)]
m, n=map(int,input().split())
s=[]
#m,n=int(m),int(n)
for i in range(m):s.append(input().split())
sum=0
x,y=-1,0
d=0
while sum < m*n:sum=sum+1dx,dy=x+dir[d][0],y+dir[d][1]if dx<0 or dx>=m or dy<0 or dy>=n or s[dx][dy]==-1:d=(d+1)%4x,y=x+dir[d][0],y+dir[d][1]else:x=dxy=dyprint(s[x][y],end=' ')s[x][y]=-1
思路來源--藍橋杯算法課
總結
- 上一篇: 外星人鼠标如何设置宏定义
- 下一篇: SpringBoot学习笔记~狂神