在判断越界条件的时候,会出现 l = r 或者 t = b 的情况,故要把截止条件限定为 l > r 或者 t > b 等等
classSolution{publicint[]spiralOrder(int[][] matrix){if(matrix.length ==0)returnnewint[0];int row = matrix.length;int col = matrix[0].length;int l =0, r = col -1, t =0, b = row -1;//定义了数组的长度int[] res =newint[row * col];int index =0;while(true){//从左向右for(int i = l; i <= r; i++) res[index++]= matrix[t][i];
t++;if(t > b)break;//从上到下for(int i = t; i <= b; i++) res[index++]= matrix[i][r];
r--;if(r < l)break;//从右到左for(int i = r; i >= l; i--) res[index++]= matrix[b][i];
b--;if(b < t)break;//从下到上for(int i = b; i >= t; i--) res[index++]= matrix[i][l];
l++;if(l > r)break;}return res;}}