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;
}
}