LeetCode 螺旋矩陣

2021-10-22 06:02:37 字數 978 閱讀 5533

題目:給你乙個 m 行 n 列的矩陣 matrix ,請按照 順時針螺旋順序 ,返回矩陣中的所有元素。

輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

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

思路:使用left,right,up,down四個邊界值來順時針遍歷矩陣,每迴圈一次邊界值往內縮1,即left++,up++;right–,down–。

該題難點在於邊界值的處理。首先考慮的迴圈條件:

①對於每一層矩陣來說,即使只有1行或1列也需要進行一次遍歷,所以迴圈條件為:

while(up<=dowm-1&&left<=right-1);

②開始遍歷使,需要考慮去重問題,比如左、右上角,左、右下角的四個元素,所以在頂部行遍歷時,範圍時left -->right-1;第右邊列遍歷的時候需要考慮右上角去重,範圍時up+1 -->down-1;

③對於底部行和右側列遍歷:首先得考慮該矩陣是否為多行多列矩陣,如果不是則不需要進行該項遍歷,即判斷:

if(leftleft; 進行左側列遍歷,考慮左下角和左上角去重,範圍為:down-1-1,up+1;

public

static list

spiralorder

(int

matrix)

//拐點右上角需要去重

for(

int i = up+

1;i(up1&&left//拐點左下角 左上角需要去重

for(

int i = down-1-

1; i >=up+

1; i--)}

left++

; up++

; right--

; down--;}

return list;

}

螺旋矩陣 leetcode

螺旋矩陣 給定乙個包含 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,...

Leetcode 螺旋矩陣

題目描述 給定乙個包含 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,...

LeetCode 螺旋矩陣II

給定乙個正整數 n,生成乙個包含 1 到 n 2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 思路分析 請先查閱 leetcode 螺旋矩陣 這道題與列印螺旋矩陣一樣,按圈層進行操作,把遍歷修改為寫入即可。初始掃瞄座標 執行用時為 4 ...