花式輸出二維數組---回形輸出

描述

輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數字

列子

例如,如果輸入如下矩陣:

 1  2  3  4
 5  6  7  8
 9 10 11 12
 13 14 15 16 

則依次打印出數字
1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

public static ArrayList<Integer> printMatrix(int [][] matrix) {
    ArrayList<Integer> result = new ArrayList<>();
    int row = matrix.length;
    int col = matrix[0].length;
    int flag = 0;
    int temp = row * col;
    while (true) {


        //上邊
        for(int i = flag; i < col - flag; i++){
            result.add(new Integer(matrix[flag][i]));
            temp--;
            if(temp==0) return result;
        }

        //右邊
        for (int i = flag + 1; i < row - flag; i++){
            result.add(new Integer(matrix[i][col - flag - 1]));
            temp--;
            if(temp==0) return result;
        }

        //下邊
        for (int i = col - 2 - flag; i > flag - 1; i--){
            result.add(new Integer(matrix[row - flag - 1][i]));
            temp--;
            if(temp==0) return result;
        }

        //左邊
        for (int i = row - 2 - flag; i > flag ; i--){
            result.add(new Integer(matrix[i][flag]));
            temp--;
            if(temp==0) return result;
        }

        flag++;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 說明: 本文中出現的所有算法題皆來自牛客網-劍指Offer在線編程題,在此只是作為轉載和記錄,用于本人學習使用,不...
    秋意思寒閱讀 1,168評論 1 1
  • 劍指 offer 在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成...
    faremax閱讀 2,241評論 0 7
  • 本文章轉載于搜狗測試 1、.junit需要注意什么?什么時候用before什么時候用beforeClass Bef...
    夜境閱讀 256評論 0 0
  • 劍指offer 最近在牛客網上刷劍指offer的題目,現將題目和答案(均測試通過)總結如下: 二維數組的查找 替換...
    閆阿佳閱讀 951評論 0 10
  • 記得高三那時候整天在看小說,大都是些是長篇,偶爾夾雜些雜文和青年文摘類的東西,當時喜歡文字這玩意喜歡的不行,簡直是...
    島主王仙客閱讀 4,905評論 17 15