資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。
輸入格式
輸入第一行是兩個不超過200的正整數m, n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。
輸出格式
輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用乙個空格分隔,行末不要有多餘的空格。
樣例輸入
3 31 2 3
4 5 6
7 8 9
樣例輸出
1 4 7 8 9 6 3 2 5
樣例輸入
3 21 2
3 45 6
樣例輸出
1 3 5 6 4 2
#include
//#include
intmain()
/*for(i=0;ii=
0;j=0;
while
(k<=n*m)
i--; j++;if
(k==m*n)
break
;while
(jj--
; i--;if
(k==m*n)
break
;while
(i>=0)
i++; j--;if
(k==m*n)
break
;while
(j>=0)
j++; i++;if
(k==m*n)
break;}
return0;
}
我這裡用了乙個陣列b來作為判斷陣列,一開始所有的元素設為1,遍歷之後設為0,然後用四個while語句來控制轉向,這裡可以避免每次的轉向的條件不同的問題,每次都正常遍歷到陣列的第m或者n位,如果要遍歷的那個元素在b陣列中的值為0的話,再break出迴圈
這裡第一次的時候有超時的情況,當時少了這句話if(k==m*n) break;,一開始以為這個條件不怎麼重要,但是考慮到陣列非常大時確實很影響速度,還是需要及時break
藍橋杯 基礎練習 回形取數
問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...
藍橋杯 基礎練習 回形取數
時間限制 1sec 記憶體限制 128mb 題目描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出 輸出只有一行,共mn個數,為...
藍橋杯 基礎練習 回形取數
問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...