[Java][Leetcode middle] 54. 螺旋矩阵
官解采用四个变量分别记录上下左右然后根据循环方向分别移动一格然后判断是否需要退出循环。classSolution{publicListIntegerspiralOrder(int[][]matrix){ListIntegerresnewArrayList();if(matrixnull||matrix.length0||matrix[0].length0)returnres;inttop0;intbottommatrix.length-1;intleft0;intrightmatrix[0].length-1;while(true){// 左到右for(intileft;iright;i)res.add(matrix[top][i]);// 向下一格并判断是否超出边界if(topbottom)break;// 上到下for(intitop;ibottom;i)res.add(matrix[i][right]);// 左if(--rightleft)break;// 右到左for(intiright;ileft;i--)res.add(matrix[bottom][i]);// 上if(--bottomtop)break;// 下到上for(intibottom;itop;i--)res.add(matrix[i][left]);// 右if(leftright)break;}returnres;}}