劍指offer 面試題29 順時針列印矩陣

2021-10-06 16:15:41 字數 1481 閱讀 8545

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