Leetcode 59 螺旋矩陣 II

2021-09-11 15:53:28 字數 1426 閱讀 3677

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

輸入: 3

輸出:[

[ 1, 2, 3 ],

[ 8, 9, 4 ],

[ 7, 6, 5 ]

]複製**

這個題目也比較簡單, 和第54題類似: 這個題目很簡單,上下左右分別用四個變數去標誌:

上:top 下:bottom 左:left 右: right

就按照四步走就可以:

left -> right top -> bottom right -> left bottom -> top

class solution:

def generatematrix(self, n):

""" :type n: int

:rtype: list[list[int]]

""" matrix = [[0 for j in range(n)] for i in range(n)]

top = 0

bottom = n - 1

left = 0

right = n - 1

count = 1

while (true):

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

matrix[top][i] = count

count += 1

top += 1

if left > right or top > bottom:

break

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

matrix[i][right] = count

count += 1

right -= 1

if left > right or top > bottom:

break

for j in range(left, right + 1)[::-1]:

matrix[bottom][j] = count

count += 1

bottom -= 1

if left > right or top > bottom:

break

for i in range(top, bottom + 1)[::-1]:

matrix[i][left] = count

count += 1

left += 1

if left > right or top > bottom:

break

return matrix

複製**

class solution 

return matrix;

}}複製**

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 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 題目分析 這道題和螺旋矩陣一樣,就是從上右下左的順序慢慢列印數字,有幾個就列印n 2個數字就完事啦 class solution return ...