leetcode 59 螺旋矩陣 II

2021-10-09 15:56:32 字數 1153 閱讀 9357

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

示例:

輸入: 3

輸出:[

[ 1, 2, 3 ],

[ 8, 9, 4 ],

[ 7, 6, 5 ]

]

首先畫出乙個矩陣圖,方便理解

由二維陣列的特性,同一排的x值相等,從左到右y值遞增;同一列的y值相等,從上到下x值遞增。

順時針旋轉,那麼走一圈的話,先是從左到右,接著從上到下,然後從右到左,最後從下到上。

我們給矩陣指定方向,左邊為left,上邊為top,右邊為right,底邊為bottom。

我們先模擬一遍過程,先是從左到右,x不變,y遞增,到頭時上邊界向內縮一層;

接著從上到下,y不變,x遞增,到頭時右邊界向內縮一層;

然後從右到左,x不變,y遞減,到頭時下邊界向內縮一層;

最後從下到上,y不變,x遞減,到頭時左邊界向內縮一層。

按照順序進行迴圈,一直到n²

public class number59 

top++;

//從上到下

for (int i = top; i <= bottom; i++)

right--;

//從右到左

for (int i = right; i >= left; i--)

bottom--;

//從下到上

for (int i = bottom; i >= top; i--)

left++;

}return matrix;

}public static void main(string args)

system.out.println();}}

}

測試用例輸出:

提交答案:

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 ...