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

results matching ""

    No results matching ""