2021 1 20 刷題(螺旋矩陣)

2022-06-11 12:30:10 字數 1238 閱讀 2267

題目描述:

給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。

示例 1:

輸入:[

[ 1, 2, 3 ],

[ 4, 5, 6 ],

[ 7, 8, 9 ]

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

示例 2:

輸入:[

[1, 2, 3, 4],

[5, 6, 7, 8],

[9,10,11,12]

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

解題:這一題需要注意控制邊界,上下左右的邊界需要保持一致。

模擬順時針畫矩陣的過程:

填充上行從左到右

填充右列從上到下

填充下行從右到左

填充左列從下到上

由外向內一圈一圈這麼畫下去。

每畫一條邊都要堅持一致的左閉右開,或者左開又閉的原則,這樣這一圈才能按照統一的規則畫下來。

方法一:

//最後剩餘一行或一列

if(top == bottom )

else if(left == right)

return ans;}};

方法二:

題目描述:

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

示例:輸入: 3

輸出:[

[ 1, 2, 3 ],

[ 8, 9, 4 ],

[ 7, 6, 5 ]

]注意while迴圈判斷條件不同,使用num <= tar而不是left < right || top < bottom作為迭代條件,是為了解決當n為奇數時,矩陣中心數字無法在迭代過程中被填充的問題。

class solution 

return matrix;}};

Leetcode刷題(54 螺旋矩陣)

給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11,10...

LeetCode刷題 54 螺旋矩陣

給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。輸入 1,2,3 4,5,6 7,8,9 輸出 1 2,3 6,9 8,7 4,5 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1 2,3 4,8 12,11 10,9 5,6,...

2020 01 18 刷題 螺旋矩陣 II

題目描述 然後下來就是明確,此題根據給的n進行確定迴圈的圈數以及每條邊迴圈的量 題目 1 class solution 20 模擬填充右列從上到下 左閉右開 21for i startx i startx n offset i 24 模擬填充下行從右到左 左閉右開 25for j starty j ...