题解 | #顺时针打印矩阵#题目通过的声音真好听啊
顺时针打印矩阵
https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a
import java.util.*; import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { if(matrix==null) return null; int zx=0; int zy=0; int yx=matrix.length-1;//gao3 int yy=matrix[0].length-1;//kuan3 ArrayList<Integer> my=new ArrayList<Integer>(); while(zx<=yx&&zy<=yy){ int x=zx; int y=zy; while(y<=yy){ my.add(matrix[zx][y]); y++;} y--; // System.out.println(y); x++; while(x<=yx){ my.add(matrix[x][yy]); x++;} x--; // System.out.println(x); y--; if(yy-zy==0||yx-zx==0){//这里特别重要,这里没判断好多都不对 break; } while(y>=zy&&y<yy){ my.add(matrix[yx][y]); y--;} x--; while(x>zx&&x<yx){ my.add(matrix[x][zy]); x--;} zx++;zy++;yy--;yx--; } return my; } }
感觉人快死了才通本题,扣边界真的好难。程序员就是最细心的职业好吗?