LeetCode 59 螺旋矩陣 II

2022-07-02 10:24:10 字數 1165 閱讀 7025

difficulty:中等

給你乙個正整數n,生成乙個包含1n2所有元素,且元素按順時針順序螺旋排列的n x n正方形矩陣matrix

示例 1:

輸入:n = 3

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

示例 2:

輸入:n = 1

輸出:[[1]]

solution

跟54題屬於同一道題,只不過此題不需要考慮特殊的矩陣形態。

class solution:

def generatematrix(self, n: int) -> list[list[int]]:

res = [[0] * n for _ in range(n)]

left, top, right, down = 0, 0, n - 1, n - 1

cnt = 1

while left <= right and top <= down:

for i in range(left, right + 1):

res[top][i] = cnt

cnt += 1

for i in range(top + 1, down + 1):

res[i][right] = cnt

cnt += 1

for i in range(right - 1, left, -1):

res[down][i] = cnt

cnt += 1

for i in range(down, top, -1):

res[i][left] = cnt

cnt +=1

left += 1

top += 1

right -= 1

down -= 1

return res

leetcode 59 螺旋矩陣

題目要求 按照順時針螺旋順序 構建乙個n n的螺旋矩陣 思路 參照之前的54題輸出螺旋矩陣的思路 將單圈拆開為四個部分。每個部分迴圈的長度是相同的。單圈迴圈完之後,起始座標向右下移乙個單位,單次迴圈長度減二。對於偶數階矩陣,正常結束。對於奇數階矩陣,因為迴圈長度會減到0,需要手動加入最後最中間的乙個...

LeetCode 59 螺旋矩陣II

給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 import numpy as np class solution def generatematrix self,n type n int r...

Leetcode 59 螺旋矩陣 II

給定乙個正整數 n,生成乙個包含 1 到 n 2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。輸入 3 輸出 1,2,3 8,9,4 7,6,5 複製 這個題目也比較簡單,和第54題類似 這個題目很簡單,上下左右分別用四個變數去標誌 上 top 下 bottom 左 left 右 right ...