题解 | #顺时针打印矩阵#
顺时针打印矩阵
http://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a
import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { if(matrix.length==0)return null; ArrayList<Integer> list = new ArrayList<>(); int _1start=0; int _2start=0; int _3start=matrix[0].length; int _4start=matrix.length; while(true){ for(int i=_1start;i<_3start;i++){ list.add(matrix[_2start][i]); } if(list.size()>=matrix[0].length*matrix.length)return list; _2start++; for(int i=_2start;i<_4start;i++){ list.add(matrix[i][_3start-1]); } if(list.size()>=matrix[0].length*matrix.length)return list; _3start--; for(int i=_3start-1;i>=_1start;i--){ list.add(matrix[_4start-1][i]); } if(list.size()>=matrix[0].length*matrix.length)return list; _4start--; for(int i =_4start-1;i>=_2start;i--){ list.add(matrix[i][_1start]); } if(list.size()>=matrix[0].length*matrix.length)return list; _1start++; } } }