定義四個變數代表範圍,up、down、left、right
向右走存入整行的值,當存入後,該行再也不會被遍歷,代表上邊界的 up 加一,同時判斷是否和代表下邊界的 down 交錯
向下走存入整列的值,當存入後,該列再也不會被遍歷,代表右邊界的 right 減一,同時判斷是否和代表左邊界的 left 交錯
向左走存入整行的值,當存入後,該行再也不會被遍歷,代表下邊界的 down 減一,同時判斷是否和代表上邊界的 up 交錯
向上走存入整列的值,當存入後,該列再也不會被遍歷,代表左邊界的 left 加一,同時判斷是否和代表右邊界的 right 交錯
public arraylist
printmatrix
(int
matrix)
int up =0;
int down = matrix.length-1;
int left =0;
int right = matrix[0]
.length-1;
while
(true
) up++;if
(up>down)
for(
int row = up;row<=down;row++
) right--;if
(right
for(
int col = right;col>=left;col--
) down--;if
(up>down)
for(
int row = down;row>=up;row--
) left++;if
(left>right)
}return list;
}
劍指offer之順時針列印矩陣
問題 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字,例如,如果輸入如下矩陣 1,2,3,4,5,6,7,8,9,則依次輸出1,2,3,6,9,8,7,4,5 思路 利用迴圈,控制迴圈條件即可 具體 如下 c class solution public vectorprintmatri...
劍指offer 順時針列印矩陣
題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次列印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。分析 第一次看到這個題目的時候,覺得...
劍指offer 順時針列印矩陣
題目描述 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字,例如,如果輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次列印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路 遞迴列印,處理好邊界就ok...