class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
a = c = 0
b = d = n-1
ans = [[0 for i in range(n)] for i in range(n)]
k = 1
while(not self.check(a,b,c,d)):
for i in range(a, b+1):
ans[c][i] = k
k += 1
c += 1
if self.check(a, b, c, d):
break
for i in range(c, d+1):
ans[i][b] = k
k += 1
b -= 1
if self.check(a, b, c, d):
break
for i in range(b, a-1, -1):
ans[d][i] = k
k += 1
d -= 1
if self.check(a,b,c,d):
break
for i in range(d, c-1, -1):
ans[i][a] = k
k += 1
a += 1
if self.check(a, b, c, d):
break
return ans
def check(self, a, b, c, d):
if a > b or c > d:
return True
return False
数组 矩阵 细节