顺时针打印矩阵
顺时针打印矩阵
http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a
public static ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList<Integer> array = new ArrayList<Integer>();
int leng = matrix.length;
int hight = matrix[0].length;
for(int i=0;array.size()<leng*hight;i++){//记录循环了几轮
int j = i;
int k = i;
array.add(matrix[j][k]);
while(array.size()<leng*hight){
if(j == i && k<hight-i-1)//向右前进
k++;
else if(k==hight-i-1 && j<leng-i-1)//向下前进
j++;
else if(j==leng-i-1 && k>=i+1)//向左前进
k--;
else if(k==i && j>=i+2)//向上前进
j--;
else
break;
array.add(matrix[j][k]);
}
}
return array;
}