LeetCode(54) 螺旋矩陣

2022-05-07 08:30:11 字數 897 閱讀 4507

medium!

題目描述:

給定乙個包含 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]

解題思路:

這道題讓我們將乙個矩陣按照螺旋順序列印出來,我們只能一條邊一條邊的列印,首先我們要從給定的mxn的矩陣中算出按螺旋順序有幾個環,注意最終間的環可以是乙個數字,也可以是一行或者一列。環數的計算公式是 min(m, n) / 2,知道了環數,我們可以對每個環的邊按順序列印,比如對於題目中給的那個例子,個邊生成的順序是(用顏色標記了數字) red -> green -> blue -> yellow -> black:

1 2 3

4 5 6

7 89

我們定義p,q為當前環的高度和寬度,當p或者q為1時,表示最後乙個環只有一行或者一列,可以跳出迴圈。此題的難點在於下標的轉換,如何正確的轉換下標是解此題的關鍵,我們可以對照著上面的3x3的例子來完成下標的填寫。

c++解法一:

1

class

solution

20return

res;21}

22 };

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

leetcode54 螺旋矩陣

給定乙個包含 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...

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 思路是 方向陣列 邊界調整 如下 class solution void matain int x,int...