public ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList<Integer> list=new ArrayList<Integer>();
int row=matrix.length;
int col=matrix[0].length;
if(row==0) {
return list;
}
list.add(matrix[i][j]);
}
for(int j=i+1;j<row-i;j++){//从上往下打印第col-i-1列
list.add(matrix[j][col-i-1]);
}
for(int j=col-i-2;j>=i&&i!=row-i-1;j--){//从后往前打印第row-i-1行,判断是否重复打印(第一个for循环)
list.add(matrix[row-i-1][j]);
}
for(int j=row-i-2;j>=i+1&&i!=col-i-1;j--){//从下往上打印第i列,判断是否重复打印(第二个for循环)
list.add(matrix[j][i]);
}
}
return list;
}
ArrayList<Integer> list=new ArrayList<Integer>();
int row=matrix.length;
int col=matrix[0].length;
if(row==0) {
return list;
}
for(int i=0;i<((row>col?col:row)+1)/2;i++){
for(int j=i;j<col-i;j++){//从前向后打印第i行list.add(matrix[i][j]);
}
for(int j=i+1;j<row-i;j++){//从上往下打印第col-i-1列
list.add(matrix[j][col-i-1]);
}
for(int j=col-i-2;j>=i&&i!=row-i-1;j--){//从后往前打印第row-i-1行,判断是否重复打印(第一个for循环)
list.add(matrix[row-i-1][j]);
}
for(int j=row-i-2;j>=i+1&&i!=col-i-1;j--){//从下往上打印第i列,判断是否重复打印(第二个for循环)
list.add(matrix[j][i]);
}
}
return list;
}