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;
}
}