有這麼一道面試題,讓順時針輸出乙個二維矩陣。
記錄開始行開始列和結束行結束列,做為輸出的邊界
除了要輸出的矩陣,我還設定了乙個狀態矩陣,用來記錄矩陣中某乙個元素輸出與否,沒有輸出過的元素,才進行輸出
測試用的矩陣:
**如下:
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 用於列印的結...