Skip to content

Latest commit

 

History

History
45 lines (40 loc) · 1.01 KB

File metadata and controls

45 lines (40 loc) · 1.01 KB
class Solution(object):

    def spiralOrder(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: List[int]
        """
        if matrix == []:
            return []
        a = 0
        b = len(matrix[0])-1
        c = 0
        d = len(matrix)-1
        ans = []
        
        while(not check(a,b,c,d)):
            for i in range(a, b+1):
                ans.append(matrix[c][i])
            c += 1
            if check(a,b,c,d):
                break
            for i in range(c, d+1):
                ans.append(matrix[i][b])
            b -= 1
            if check(a,b,c,d):
                break
            for i in range(b, a-1, -1):
                ans.append(matrix[d][i])
            d -= 1
            if check(a,b,c,d):
                break
            for i in range(d, c-1, -1):
                ans.append(matrix[i][a])
            a += 1      
        return ans
def check(a, b, c, d):
    if a > b or c > d:
        return True
    return False

矩阵 数组 细节