本文準(zhǔn)備講解1個(gè)算法編程問(wèn)題, 這個(gè)算法編程問(wèn)題來(lái)自L(fǎng)intCode平臺(tái)规辱。不了解.LintCode平臺(tái)的讀者可以閱讀筆者文章(在線(xiàn)編程平臺(tái)推薦-LeetCode)。問(wèn)題的英文版本描述如下:
Matrix Zigzag Traversal
Given a matrix of?mxn?elements (m?rows,n?columns), return all elements of the matrix in ZigZag-order.
Example
Given a matrix:
[
[1, 2,? 3,? 4],
[5, 6,? 7,? 8],
[9,10, 11, 12]
]
return [1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12].
矩陣的之字型遍歷
給你一個(gè)包含 mxn 個(gè)元素的矩陣 (m行,n列), 之字型遍歷該矩陣草姻。
樣例
對(duì)于如下矩陣:
[
[1, 2,? 3,? 4],
[5, 6,? 7,? 8],
[9,10, 11, 12]
]
返回 [1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12]溪椎。
該問(wèn)題要求對(duì)矩陣元素逐行斜線(xiàn)遍歷。以樣例矩陣為例誊锭,1個(gè)斜線(xiàn)遍歷為 [ 2表悬,5],另1個(gè)斜線(xiàn)遍歷為 [9丧靡,6蟆沫,3]。這2個(gè)斜線(xiàn)遍歷的遍歷方向相反温治。算法處理方案需要將斜線(xiàn)非端點(diǎn)節(jié)點(diǎn)和斜線(xiàn)端點(diǎn)節(jié)點(diǎn)的處理區(qū)別對(duì)待饭庞。斜線(xiàn)非端點(diǎn)節(jié)點(diǎn)為非矩陣邊界節(jié)點(diǎn),如樣例矩陣的 6熬荆。斜線(xiàn)端點(diǎn)節(jié)點(diǎn)為矩陣邊界節(jié)點(diǎn)舟山,如樣例矩陣的 2,5卤恳,9累盗,3。現(xiàn)在公布1種高效簡(jiǎn)單的算法方案突琳。