# -*- coding:utf-8 -*-
class Solution:
# matrix类型为二维列表,需要返回列表
def printMatrix(self, matrix):
res = []
m = len(matrix)
n = len(matrix[0])
sum = n * m
if m == 1 and n != 0:
return matrix[0]
if n == 1:
for index in range(m):
res.append(matrix[index][0])
return res
i,j = 0,0
circle = 0
left,right,upper,lower = 0,0,0,0
while True:
while right < n - 1:
res.append(matrix[i][j])
sum -= 1
j += 1
right += 1
if sum == 0:
break
while lower < m - 1:
res.append(matrix[i][j])
sum -= 1
i += 1
lower += 1
if sum == 0:
break
while left < n - 1:
res.append(matrix[i][j])
sum -= 1
j -= 1
left += 1
if sum == 0:
break
while upper < m - 1:
res.append(matrix[i][j])
sum -= 1
i -= 1
upper += 1
if sum == 0:
break
circle += 1
i,j = circle,circle
m , n = m-2, n-2
left,right,upper,lower = 0,0,0,0
if m == 1:
while(sum):
res.append(matrix[i][j])
sum -= 1
j += 1
if n == 1:
while(sum):
res.append(matrix[i][j])
sum -= 1
i += 1
if sum == 0:
break
return res