LeetCode刷题(23)

来源:互联网 发布:咏春历史 知乎 编辑:程序博客网 时间:2024/06/07 07:59

Spiral Matrix
矩阵,从外向内,顺时针取数。
主要是搞清行列关系

class Solution(object):    def spiralOrder(self, matrix):        """        :type matrix: List[List[int]]        :rtype: List[int]        """        if len(matrix) == 0:            return []        m1 = len(matrix)        m2 = len(matrix[0])        m = min(m1, m2)        n = m / 2        res = []        for i in range(n):            res += matrix[i][i:m2-i]            for j in range(i+1, m1-i-1):                res += [matrix[j][m2-1-i]]            res += matrix[m1-1-i][i:m2-i][::-1]            for j in reversed(range(i+1, m1-i-1)):                res += [matrix[j][i]]        if m % 2 == 1:            if m1 >= m2:                for j in range(n, m1-n):                    res += [matrix[j][n]]            else :                res += matrix[n][n:m2-n]        return res