题目解释:
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
For example,
Given the following matrix:
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]
You should return [1,2,3,6,9,8,7,4,5]
代码:
class Solution:
# @param matrix, a list of lists of integers
# @return a list of integers
def spiralOrder(self, matrix):
result = [];
m = len(matrix);
if m==0:
return result;
n = len(matrix[0]);
while len(matrix)>0 and len(matrix[0])>0:
result = result + matrix[0];
del matrix[0];
if len(matrix)==0 or len(matrix[0])==0:
break;
for i in range(0,len(matrix)):
result.append(matrix[i][len(matrix[i])-1]);
del matrix[i][len(matrix[i])-1];
if len(matrix)==0 or len(matrix[0])==0:
break;
matrix[len(matrix)-1].reverse();
result = result + matrix[len(matrix)-1];
del matrix[len(matrix)-1];
if len(matrix)==0 or len(matrix[0])==0:
break;
if len(matrix[0])>0:
for i in range(0,len(matrix)):
result.append(matrix[len(matrix)-1-i][0]);
del matrix[len(matrix)-1-i][0];
return result;