up, down, left, right 分别记录未打印矩阵的上下左右下标,每打印一行依次减一
-*- coding:utf-8 -*-
class Solution:
# matrix类型为二维列表,需要返回列表
def printMatrix(self, matrix):
# write code here
up, down, left, right = 0, len(matrix) - 1, 0, len(matrix[0])-1
ans = []
while up <= down and left <= right:
if up <= down:
for i in range(left, right + 1):
ans.append(matrix[up][i])
up += 1
if left <= right:
for i in range(up, down + 1):
ans.append(matrix[i][right])
right -= 1
if up <= down:
for i in range(left, right + 1):
ans.append(matrix[down][right-i+left])
down -= 1
if left <= right:
for i in range(up, down + 1):
ans.append(matrix[down-i+up][left])
left += 1
return ans