题目链接:https://leetcode.com/problems/spiral-matrix-ii/
代码
class Solution:
def generateMatrix(self, n):
res, lo = [[n*n]], n*n
while lo > 1:
lo, hi = lo - len(res), lo
res = [[i for i in range(lo, hi)]] + [list(j) for j in zip(*res[::-1])]
return res
思路
这个代码,是上一题的逆向思路
另外,常规办法,关于二维数组单元素的赋值上,遇到点问题,待解决
class Solution:
def generateMatrix(self, n):
row,col=n-1,n-1
i,j=0,0
matrix=[[0]*n]*n
val=1
print(matrix)
while i <= row and j <= col:
for k in range(j,col+1,1):
matrix[i][k]=val
print(matrix)
val+=1
print(matrix)
i+=1
for k in range(i,row+1,1):
matrix[k][col],val=val,val+1
col-=1
print(matrix)
for k in range(col,j-1,-1):
matrix[row][k],val=val,val+1
row-=1
print(matrix)
for k in range(row,i-1,-1):
matrix[k][j],val=val,val+1
j+=1
print(matrix)
return matrix
问题: