剑指:顺时针打印矩阵

顺时针打印矩阵

http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a

题目:顺时针打印矩阵
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.

思路:每次存入第一行,然后将数组去掉第一行后,逆时针旋转90度,继续存入第一行。

代码:
import java.util.ArrayList;
public class Solution {
public ArrayList<integer> printMatrix(int [][] matrix) {
ArrayList<integer> arrayList=new ArrayList<>();
while(matrix!=null) {
for(int i=0;i<matrix[0].length;i++) {
System.out.println("hh"+matrix[0][i]);
arrayList.add(matrix[0][i]);
}
matrix=newMatrix(matrix);
}
return arrayList;
}
private int[][] newMatrix(int[][] matrix) {
int row=matrix[0].length;
int cos=matrix.length-1;
if(cos==0) {
return null;
}
int [][]m=new int[row][cos];
for(int i=1;i<matrix.length;i++) {
for(int j=0;j<matrix[0].length;j++) {
m[row-j-1][i-1]=matrix[i][j];
}
}
return m;
}
}</integer></integer>

全部评论

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务