面試題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,10,9,5,6,7]
限制:0 <= matrix.length <= 100
0 <= matrix[i].length <= 100
class
solution
:def
spiralorder
(self, matrix:[[
int]])
->
[int]:
ifnot matrix:
return
l, r, t, b, res =0,
len(matrix[0]
)-1,
0,len(matrix)-1
,while
true
:for i in
range
(l, r +1)
[i])
# left to right
t +=
1if t > b:
break
for i in
range
(t, b +1)
[r])
# top to bottom
r -=
1if l > r:
break
for i in
range
(r, l -1,
-1)[i]
)# right to left
b -=
1if t > b:
break
for i in
range
(b, t -1,
-1)[l]
)# bottom to top
l +=
1if l > r:
break
return res
# 方法2
# 刪除第一行(也就是matrix中的第乙個列表),然後逆時針旋轉(這裡通過轉置+倒序實現)
劍指Offer 面試題29 順時針列印矩陣
面試題29 順時針列印矩陣 題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。從上到下列印一列 if start 從右到左列印一行 if start 從下到上列印一列 if start void printmatrixclockwisely int numbers,int colu...
劍指offer 面試題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,10,9...
劍指 面試題29 順時針列印矩陣
題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。思路 四個迴圈,每次執行前先判斷邊界條件 start y row start x col。總結 c class solution vector int res int col matrix 0 size 1 int row matr...