給定乙個包含 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]
思路
判斷出路線都是有固定方向的 先→再↓再←再↑再→…一直迴圈到沒有數字。
有4個方向邊界 當觸及邊界時即按固定方向轉向,且其對應的邊界值向內收縮1
若沒觸及邊界,就按自身方向繼續行走,直到座標值觸邊界/數字全部遍歷過。
var
spiralorder
=function
(matrix)
}else
if(turn==
'd')
}else
if(turn==
'l')
}else
if(turn==
'u')}}
return res
};
LeetCode 搜尋二維矩陣
編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3 輸出 true示例 2 ...
二維陣列動態分配and螺旋矩陣
前陣子碰到個面試題感覺還挺有意思,讓寫個螺旋矩陣,當時時間緊寫的還挺粗糙的,回家以後又重新完善了下。include using namespace std int main 動態分配二維陣列 int matrix new int n for i 0 i n i int m,k j 0 m n int...
LeetCode 搜尋二維矩陣II
編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 每行的元素從左到右公升序排列。每列的元素從上到下公升序排列。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17...