Skip to content

Latest commit

 

History

History
48 lines (43 loc) · 1.14 KB

59.md

File metadata and controls

48 lines (43 loc) · 1.14 KB
class Solution(object):
    def generateMatrix(self, n):
        """
        :type n: int
        :rtype: List[List[int]]
        """
        a = c = 0
        b = d = n-1
        ans = [[0 for i in range(n)] for i in range(n)] 
        k = 1
        while(not self.check(a,b,c,d)):
            for i in range(a, b+1):
                ans[c][i] = k
                k += 1
            c += 1
            if self.check(a, b, c, d):
                break
            
            for i in range(c, d+1):
                ans[i][b] = k
                k += 1
            b -= 1
            if self.check(a, b, c, d):
                break
            
            for i in range(b, a-1, -1):
                ans[d][i] = k
                k += 1
            d -= 1
            if self.check(a,b,c,d):
                break
                
            for i in range(d, c-1, -1):
                ans[i][a] = k
                k += 1
            a += 1
            if self.check(a, b, c, d):
                break
        return ans
    
    def check(self, a, b, c, d):
        if a > b or c > d:
            return True
        return False

数组 矩阵 细节