輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。模擬輸出,設定4個變數,分別是left,right,top,bottom,一次迴圈輸出一圈即可。示例 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
注意在輸入一行或者一列的特殊矩陣時,需要滿足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...