輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。
示例 1:
輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
輸出:[1,2,3,6,9,8,7,4,5]
示例 2:
輸入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
輸出:[1,2,3,4,8,12,11,10,9,5,6,7]
限制:0 <= matrix.length <= 100
0 <= matrix[i].length <= 100
思路:
可以看出我們的規律是從起點出發往右開始走,然後下,左,上。再右邊…重複。直到不能走為止。這一步是可以用乙個小技巧定義乙個上下左右走的座標的。(看**)
=;//右下左上
int d =0;
//我們的方向控制變數 對照上面的方向,0是右,1下,2左,3上,然後重複
int x =
0, y =0;
//初始化座標
vector
bool
>>
st(n, vector<
bool
>
(m,false))
;//我們只要第一次搜尋到的結果
for(
int i =
0; i < n * m; i ++
) x = a, y = b;
//更新座標
}return res;}}
;
劍指Offer19 順時針列印矩陣
思路 可以模擬魔方逆時針旋轉的方法,一直做取出第一行的操作 例如 1 2 3 4 5 6 7 8 9 輸出並刪除第一行後,再進行一次逆時針旋轉,就變成 6 95 8 4 7繼續重複上述操作即可。coding utf 8 class solution matrix型別為二維列表,需要返回列表 def ...
劍指offer題20 順時針列印矩陣
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。當我們遇到乙個複雜的問題,可以用圖形來幫助我們思考。1.我們可以用乙個迴圈來列印矩陣,每一次列印矩陣中的乙個圈。2.下一步分析迴圈結束的條件。我們可以分析出,讓迴圈繼續的條件是column startx 2並且rows starty 2。...
劍指offer刷題 順時針列印矩陣
題目 輸入乙個矩陣,按照從外向裡以順時針的順序列印出沒乙個數字。例如輸入下面矩陣 則依次列印出 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.可以將矩陣看作幾個環來列印 如下 每次都從環的左上角開始列印,我們會發現左上角元素的橫座標和縱座標是相同的,我們記為 star...