Spiral Matrix II
Problem: Spiral Matrix II
Just some dirty and trivial codes.
Code in Python:
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
ans = [[0] * n for _ in xrange(n)]
i, j = 0, 0
l, r, u, b = -1, n, 0, n
num = 1
direction = 0
while num <= n*n:
if direction == 0: # going right
if j == r:
direction, i, j, r = 1, i+1, j-1, r-1 # turn down
continue
ans[i][j] = num
num += 1
j += 1
elif direction == 1: # going down
if i == b:
direction, i, j, b = 2, i-1, j-1, b-1 # turn left
continue
ans[i][j] = num
num += 1
i += 1
elif direction == 2: # going left
if j == l:
direction, i, j, l = 3, i-1, j+1, l+1 # turn up
continue
ans[i][j] = num
num += 1
j -= 1
else: # going up
if i == u:
direction, i, j, u = 0, i+1, j+1, u+1 # turn right
continue
ans[i][j] = num
num += 1
i -= 1
return ans