给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
面试频率较高
1. 先定义一个空矩阵
 2. startx表示行起始 starty表示列起始
 3. 左闭右开原则,从左到右,从上到下,从右到左,从下到上开始循环赋值,一共是四个循环
 4. 注意偶数和奇数,奇数需要给中心值赋值
class Solution(object):
    def generateMatrix(self, n):
        """
        :type n: int
        :rtype: List[List[int]]
        """
        nums = [ [0]*n for _ in range(n)]
        startx, starty = 0,0 // startx表示行 starty表示列
        loop, mid = n // 2, n // 2
        count = 1
        for offset in range(1, loop + 1):
            for i in range(starty,n - offset):
                nums[startx][i] = count
                count += 1
            for i in range(startx,n - offset):
                nums[i][n - offset] = count
                count += 1
            for i in range(n - offset,starty,-1):
                nums[n - offset][i] = count
                count += 1
            for i in range(n - offset,startx,-1):
                nums[i][starty] = count
                count += 1  
            startx += 1
            starty += 1
        
        if  n % 2 != 0:
            nums[mid][mid] = count
        return nums



















