zigzag遍歷矩陣

2021-10-05 20:13:23 字數 1133 閱讀 9670

按之字型遍歷乙個矩陣。

之字形遍歷順序如下圖所示:

處理乙個二維矩陣一定不能陷入繁瑣的細節處理中,如果此題思考方向為到了 2 後如何轉向 5,到了 5 後如何轉向 9,到了 9 後又如何轉向 6,這樣程式設計會變得異常複雜。應該抽象出子過程,本題的子過程就是遍歷矩陣斜著的一行,只不過每隔一行遍歷方向改變。如下圖所示:

o1 和 o2 代表斜著一行的兩個端點。根據遍歷方向,從乙個端點移動到另乙個端點即可。每遍歷完一行,o1 向右移動一格,o2 向左移動一格。當移動到邊界時,o1 轉為向下移動,o2 轉為向右移動。兩端點相遇,遍歷結束。

class

code_08_zigzagprintmatrix

system.out.

println()

;}public

static

void

printlevel

(int

m,int x1,

int y1,

int dr,

int dc,

boolean f)

}else}}

public

static

void

main

(string[

] args),,

};// 列印原矩陣

system.out.

println

("原矩陣:");

for(

int i =

0; i < matrix.length; i++

)else

} system.out.

println()

;}// zigzag 遍歷

system.out.

println

("zigzag:");

printmatrixzigzag

(matrix);}

}

zigzag模式提取矩陣元素

zigzag模式提取矩陣元素 zouxy09 qq.com 這節博文只是為了上傳個 而已。希望對需要的人有用。zig zag模式如下圖所示。它可以用來按照以下的順序來提取乙個矩陣的元素。這個東西用在哪呢?用在離散余弦變換的係數提取裡面。離散余弦變換 dct 是種影象壓縮演算法,jpeg 2000好像...

CVTE筆試題2 生成zigzag矩陣

其幾天參加的cvte兩道筆試題,第二道是生成zigzag矩陣,具體如下 給定陣列輸出 1,2,6 3,5,7 4,8,9 vector to zigzagmatrix vector data int temp sqrt n if temp temp n throw new exception 輸入陣...

zigzag矩陣按照之字形線路產生方法(C )

includeusing namespace std void zigzag int m,int n else if prestep 4 else if prestep 4 上一步右上方向走,則現在向右走一步 else if prestep 1 上一步向右走,現在需要向左下走一步 else else...