演算法學習之實現二維矩陣的順時針遍歷

2021-09-01 02:29:04 字數 802 閱讀 5125

有這麼一道面試題,讓順時針輸出乙個二維矩陣。

記錄開始行開始列和結束行結束列,做為輸出的邊界

除了要輸出的矩陣,我還設定了乙個狀態矩陣,用來記錄矩陣中某乙個元素輸出與否,沒有輸出過的元素,才進行輸出

測試用的矩陣:

**如下:

public class exampleunittest , , , };

int hasprintedmatrix = , , , };

@test

public void addition_iscorrect() throws exception

j--;

i++;

// 從右上往右下

for (; i < endline + 1; i++)

i--;

j--;

// 從右下到左下

for (; j > startcolumn - 1; j--)

i--;

j++;

// 從左下到左上

for (; i > startline; i--)

startline++;

startcolumn++;

endcolumn--;

endline--;}}

private void printdata(int i, int j) }}

結果

方法似乎笨拙了一些,但……至少解決了問題

順時針列印二維陣列

如果看不懂,可參照劍指offer128頁 include include using namespace std 方法一 傳vector 需要傳引用 方法二 傳二維指標 按圈給陣列賦值 void printmatrixincircle int vector numbers,int rows,int ...

順時針列印二維陣列

一 題目 要求 輸入乙個陣列,從外到裡順時針列印陣列中的元素,例如輸入矩陣 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 c...

C語言 順時針列印矩陣(二維陣列)

給出二維陣列,要求按順時針列印二維陣列。例如給出 輸入 int arr 3 輸出 1,2,3,6,9,8,7,4,5 順時針列印矩陣的順序是 從左向右 從上向下 從右向左 從下向上 迴圈。1 求出用於返回列表的大小returnsize。2 矩陣 左 右 上 下 四個邊界 l r t b 用於列印的結...