59螺线矩阵

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

示例:

输入: 3
输出:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/spiral-matrix-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Solution 1

初始化后一次遍历  
class Solution:
    def generateMatrix(self, n: int) -> [[int]]:
        matrix = [[0 for i in range(n)] for i in range(n)]
        rank = n
        i = 0
        j = 0
        k = 0
        while(rank >= 2):
            for _ in range(rank-1):
                matrix[i][j] = k = k+1
                j += 1
            for _ in range(rank-1):
                matrix[i][j] = k = k+1
                i += 1
            for _ in range(rank-1):
                matrix[i][j] = k = k+1
                j -= 1
            for _ in range(rank-1):
                matrix[i][j] = k = k+1
                i -= 1
            rank -= 2
            i += 1
            j += 1
        if (n % 2):
            matrix[int(n/2)][int(n/2)] = n * n
        return matrix