劍指offer第19題 順時針列印矩陣

2021-10-13 20:11:07 字數 989 閱讀 1854

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。

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