螺旋矩阵2python3(leetcode59)

#给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 nxn 正方形矩阵 matrix 。

class Solution(object):
    def generateMatrix(self, n):
        """
        :type n: int
        :rtype: List[List[int]]
        """
        l, r, t, b = 0, n-1, 0, n-1
        mat = [[0]* n for _ in range(n)]
        num, mat_sum = 1, n* n
        #<=
        while num <= mat_sum:
            #从左到右
            for i in range(l, r + 1):
                mat[t][i] = num 
                num += 1
            t += 1
            #从上到下
            for i in range(t, b + 1):
                mat[i][r] = num
                num += 1
            r -= 1
            #从右到左
            for i in range(r, l-1, -1):
                mat[b][i] = num
                num += 1
            b -= 1
            #从下到上
            for i in range(b, t-1, -1):
                mat[i][l] = num
                num += 1
            l += 1
        return mat

猜你喜欢

转载自blog.csdn.net/ziqingnian/article/details/121831547