面試題29 順時針列印矩陣

2021-10-06 20:26:46 字數 988 閱讀 5337

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

示例 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

模擬輸出,設定4個變數,分別是left,right,top,bottom,一次迴圈輸出一圈即可。

注意在輸入一行或者一列的特殊矩陣時,需要滿足leftclass

solution

int bottom = matrix.

size()

-1;int right = matrix[0]

.size()

-1;int left =0;

int top =0;

while

(left <= right && top <= bottom)

for(

int j = top +

1; j <= bottom; j++

)//注意判斷條件

for(

int k = right -

1; k >= left && top < bottom; k--

)//判斷條件

for(

int p = bottom -

1; p > top && left < right; p--

) top++

; left++

; right--

; bottom--;}

return ans;}}

;

面試題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...