面試題29 順時針列印矩陣

2021-10-06 20:59:55 字數 1330 閱讀 4624

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。

示例 1:

輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

輸出:[1,2,3,6,9,8,7,4,5]

示例 2:

輸入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]

輸出:[1,2,3,4,8,12,11,10,9,5,6,7]

限制:0 <= matrix.length <= 100

0 <= matrix[i].length <= 100

**思路一:**確定上下左右四個邊界,遍歷方向為從左到右、從上到下、從右到左、從下到上,從左到右移動完後上邊界下移(如果上邊界移到了下邊界之下,說明遍歷完了),從上到下移動完後右邊界左移(如果右邊界移動到左邊界之左,說明遍歷完了),剩下兩個方向同理。

class

solution

int[

] res =

newint

[matrix.length * matrix[0]

.length]

;int l =

0, r = matrix[0]

.length -

1, t =

0, b = matrix.length -

1, index =0;

while

(true

)return res;

}}

class

solution

int row = matrix.length;

int col = matrix[0]

.length;

//false代表沒走過

boolean

map =

newboolean

[row]

[col]

;int

dir =

newint

,,,}

;int

res =

newint

[row * col]

; res[0]

= matrix[0]

[0];

map[0]

[0]=

true

;int x =0;

int y =0;

int idx =1;

while

(true)if

(i < dir.length -1)

}if(!flag)

}return res;

}}

面試題29 順時針列印矩陣

輸入乙個矩陣,從外到裡以順時針順序依次列印 思路 將其看作一圈一圈列印 開始 start,start 座標,0,0 1,1 2,2 終止列印一圈的條件 cols startx2,rows starty2 如何列印一圈?從左到右 總需要 從上到下 起始行號 終止行號 從右到左 圈內至少兩行兩列 從下到...

面試題29 順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。這裡沒有涉及複雜的資料結構或者演算法,但是需要寫多個迴圈,需要判斷多個邊界條件。需要注意的是,最後一圈可能退化成只有一行 只有一列,甚至只有乙個數字。分析一圈 第一步總是需要的,因為至少有一步。如果只有一行,就不需要第二步了。需要第二步的...

面試題29 順時針列印矩陣

題目描述 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。示例 1 輸入 matrix 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 matrix 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11...