输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList result=new ArrayList();
if(matrix.length==0)
return result;
int n1=0;
int n2=matrix.length-1;
int nn=n2+1;
int m1=0;
int m2=matrix[0].length-1;
int mm=m2+1;
int count=0;
while(count<nn*mm)
{
if(m1<=m2)
{
for(int j=m1;j<=m2;j++)
{
result.add(matrix[n1][j]);
count++;
}
n1++;
}
if(n1<n2 && count<nn*mm)
{
for(int i=n1;i<=n2;i++)
{
result.add(matrix[i][m2]);
count++;
}
m2--;
}
if(m1<m2 && count<nn*mm)
{
for(int jj=m2;jj>=m1;jj--)
{
result.add(matrix[n2][jj]);
count++;
}
n2--;
}
if(n1<n2 && count<nn*mm)
{
for(int ii=n2;ii>=n1;ii--)
{
result.add(matrix[ii][m1]);
count++;
}
m1++;
}
}
return result;
}
}
判断条件过多,这边有时间重新整理。