题目描述
blablabla
样例
blablabla
算法1
() O(n2)
blablabla
时间复杂度分析:blablabla
Python 代码
class Solution(object):
def printMatrix(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: List[int]
"""
if len(matrix) == 0:
return []
m = len(matrix)
n = len(matrix[0])
dx = [1, 0 , -1, 0]
dy = [0, 1, 0, -1]
res = []
memo = [[False] * n]
for _ in range(m):
memo.append([False] * n) # 直接[[False] * n] * m因为reference的问题不可行
d = 0
x, y = 0, 0
for i in range(m * n):
res.append(matrix[y][x])
memo[y][x] = True
xx = x + dx[d]
yy = y + dy[d]
if xx >= n or xx < 0 or yy < 0 or yy >= m or memo[yy][xx]:
d = (d + 1) % 4
xx = x + dx[d]
yy = y + dy[d]
x = xx
y = yy
return res