Offer 顺时针打印矩阵

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        ArrayList<Integer> list = new ArrayList<>();
        int rowLen = matrix.length;
        if (rowLen == 0){
            return null;
        }
       int colLen = matrix[0].length;
       for (int i = 0; i <= (rowLen-1)/2 && i <= (colLen - 1)/2; i++){
           for (int j = i; j <= colLen - 1 -i; j++){
               list.add(matrix[i][j]);
           }
           if (rowLen - 2*i - 1 >0){
               for (int j = i + 1; j <= rowLen - 1 - i; j++){
               list.add(matrix[j][colLen - 1 - i]);
               }
           
               if (colLen - 1 - 2*i > 0){
                   for (int j = colLen - 2 - i; j >= i; j--){
                       list.add(matrix[rowLen - i -1][j]);
                   }
                   if (rowLen - 2 - 2*i > 0){
                       for (int j = rowLen - 2 -i; j > i; j--){
                           list.add(matrix[j][i]);
                       }
                   }
               }
          }
       }
        return list; 
    }
}

 

posted @ 2020-04-21 11:29  lucy_cui  阅读(83)  评论(0)    收藏  举报