LeetCode 28 螺旋矩陣Ⅱ

合併兩個有序數組 - LeetCode

問題描述

  • 給定一個正整數 n,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。

示例:

輸入: 3
輸出:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]

問題分析

  設置一個動態的數字選擇特定行數或者列數,螺旋賦值

代碼

class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        array = [[0 for i in range(n)] for j in range(n)]
        c, j = 1, 0
        while c<=n*n:
            # 從左向右
            for i in range(j, n-j):
                array[j][i] = c
                c += 1
            # 從上往下走
            for i in range(j+1, n-j):
                array[i][n-j-1] = c
                c += 1
            # 從右往左走
            for i in range(n-j-2, j-1, -1):
                array[n-j-1][i] = c
                c += 1
            # 從下往上走
            for i in range(n-j-2, j, -1):
                array[i][j] = c
                c += 1
            j += 1
        return array
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章