Cattle off network - clockwise print matrix

Enter a matrix, in order from outside to inside in a clockwise order to print out sequentially for each number, for example, if you enter the following 4 X 4 matrix: 1,234,567,891,011,121,314 15 sequentially printed out 16 digital 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        ArrayList<Integer> result = new ArrayList<Integer>();
        
        int m = matrix.length,n = matrix[0].length;
        int layers = (Math.min(m,n)-1)/2+1;
        if(m==0||n==0) return result;
        for(int i = 0;i<layers;i++) {
            for(int j=i;j<n-i;j++) result.add(matrix[i][j]);//右
            for(int k=i+1;k<m-i;k++) result.add(matrix[k][n-i-1]);//下
            for(int j=n-i-2;(j>=i)&&(m-i-1!=i);j--) result.add(matrix[m-i-1][j]);//左
            for(int k=m-i-2;(k>i)&&(n-i-1!=i);k--) result.add(matrix[k][i]);//上
        }
        return result;
        
    }
}

 

Published 41 original articles · won praise 6 · views 6473

Guess you like

Origin blog.csdn.net/qq_42712280/article/details/104415243