問題:
給定乙個包含 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]
思路:
螺旋矩陣的問題要像剝洋蔥一樣將矩陣分層級,每個層級涉及到四個動作,分別是右,下,左,上行走,每次都要走到該層級的盡頭,行走的時候要注意層級的邊界問題,以下**條理很清晰,大多都是邊界處理,可以仔細品味。
評價:
該思路很清晰,對於邊界處理的非常完美,**一次性寫完,執行直接通過,大腦飛速旋轉的感覺非常爽!!!
public class solution
ilistresult = new list();
int all = matrix.length * matrix[0].length;
int count = 0;
int layer = 0;
int p = 0;
int p1 = 0;
while(true)
//左走
while(p1-layer>=0)
if(count >= all)
p1++;
p--;
//上走
while(p-layer-1>=0)
p++;
p1++;
if(count >= all)
//層級增加
layer++;
}return result;
}}
螺旋矩陣 C語言
題目 給定乙個數n,生成乙個包含1 n 2 的螺旋形矩陣.螺旋由外向內順時針旋轉,可參照樣例 樣例 1 輸入 3 輸出 1,2,3 8,9,4 7,6,5 解題思路 主要 一圈一圈遍歷矩陣。邊界處理。矩陣的上下左右邊界。邊界處理 int shang,xia,zuo,you shang 0 xia n...
螺旋方針(螺旋矩陣)
螺旋方陣 time limit 1000ms memory limit 65536kb problem description 的螺旋方陣當n 5和n 3時分別是如下的形式 請給出乙個程式,對於任意的輸入 0 11 輸出按照上面規律所獲得的 的螺旋方陣。input 輸入第一行為整數 0 10 代表有...
列印螺旋矩陣(C語言)
本博文主要給大家介紹的是正方形的螺旋矩陣,因為這個螺旋矩陣是最簡單的,我之後再把其他型別的螺旋矩陣寫成部落格和大家一起交流。思路如下 首選,我們得知道有有多少個 螺旋 乙個n維矩陣有n 2 n為偶數 或n 2 1 n為奇數 個 其次,列印乙個每個 旋 的步驟是,列印第i行,然後是第n i 1列,再然...