JZ19 顺时针打印矩阵
顺时针打印矩阵
http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a
老老实实按照顺时针跑路。
import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { if(matrix==null||matrix.length==0||matrix[0].length==0) return new ArrayList<Integer>(); int i=0, j=0; int n=matrix.length, m=matrix[0].length; ArrayList<Integer> ans=new ArrayList<>(); int index=1; while(ans.size()!=n*m){ while(j<m-index/4){ ans.add(matrix[i][j]); j++; } if(ans.size()==n*m) return ans; i++; j--; index++; while(i<n-index/4){ ans.add(matrix[i][j]); i++; } if(ans.size()==n*m) return ans; j--; i--; index++; while(j>=0+index/4){ ans.add(matrix[i][j]); j--; } if(ans.size()==n*m) return ans; i--; j++; index++; while(i>=0+index/4){ ans.add(matrix[i][j]); i--; } if(ans.size()==n*m) return ans; j++; i++; index++; } return ans; } }