天天看點

算法學習之路|螺旋矩陣

本題要求将給定的N個正整數按非遞增的順序,填入“螺旋矩陣”。所謂“螺旋矩陣”,是指從左上角第1個格子開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。

輸入格式:

輸入在第1行中給出一個正整數N,第2行給出N個待填充的正整數。所有數字不超過104,相鄰數字以空格分隔。

輸出格式:

輸出螺旋矩陣。每行n個數字,共m行。相鄰數字以1個空格分隔,行末不得有多餘空格。

輸入樣例:

12

37 76 20 98 76 42 53 95 60 81 58 93

輸出樣例:

98 95 93

42 37 81

53 20 76

58 60 76

解題思路:

将代碼分為四個部分,

就用這個例子說,分為向下,向右,向上,向左。

第一次,98-53

第二次,58-60

第三次,76-81

第四次,93-95

然後依次類推,即可。

代碼如下:

繼續閱讀