[leetcode] 59. Spiral Matrix II
  TEZNKK3IfmPf 2024年07月26日 34 0

题目

Given a positive integer n, generate an n x n matrix filled with elements from 1 to n2 in spiral order.

Example 1:

[leetcode] 59. Spiral Matrix II

Input: n = 3
Output: [[1,2,3],[8,9,4],[7,6,5]]

Example 2:

Input: n = 1
Output: [[1]]

Constraints:

  • 1 <= n <= 20

思路

初始化矩阵,随后遍历。

代码

python版本:

class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        matrix = [[0 for _ in range(n)] for _ in range(n)]
        direction = [(0, 1), (1, 0), (0, -1), (-1, 0)]

        def travel(i, j, cnt, d):
            matrix[i][j] = cnt
            x, y = direction[d]
            if 0 <= i+x < n and 0 <= j+y < n and matrix[i+x][j+y] == 0:
                travel(i+x, j+y, cnt+1, d)
            else:
                d = (d+1) % 4
                x, y = direction[d]
                if 0 <= i+x < n and 0 <= j+y < n and matrix[i+x][j+y] == 0:
                    travel(i+x, j+y, cnt+1, d)
                else:
                    return

        travel(0, 0, 1, 0)
        return matrix

# 🐂🍺遍历
def generateMatrix(self, n):
    A = [[0] * n for _ in range(n)]
    i, j, di, dj = 0, 0, 0, 1
    for k in xrange(n*n):
        A[i][j] = k + 1
        if A[(i+di)%n][(j+dj)%n]:
            di, dj = dj, -di
        i += di
        j += dj
    return A
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年07月26日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年07月27日   49   0   0 java算法开发语言
TEZNKK3IfmPf