这题比较简单,就是理解循环规则即可。但边界条件比较不好判断,可采用循环不变量原则进行处理,就是采用一个边界原则。
# -*- coding: utf-8 -*- """ @Time : 2022/8/9 15:21 @Author : FJC @File : 螺旋数组II.py @Software: win10 python3.7 """ class Solution: def generateMatrix(self,n): nums=[[0]*n for _ in range(n)] count,j=1,0 mid=n//2 for offset in range(mid): # 左闭右开 for y in range(j,n-j-1): print(count) nums[offset][y]=count count+=1 print("-----") for x in range(j,n-j-1): print(count) nums[x][n-j-1]=count count+=1 print("-----") for y in range(n-1-j,j,-1): print(count) nums[n-j-1][y]=count count+=1 print("-----") for x in range(n-1-j,j,-1): print(count) nums[x][j]=count count+=1 j += 1 if n%2!=0: nums[mid][mid]=count return nums solution=Solution() print(solution.generateMatrix(5))