劍指offer之順時針列印矩陣

2021-10-25 13:41:10 字數 986 閱讀 4642

定義四個變數代表範圍,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...