标签:没有 一个 打印 pre 有意思 -- break while循环 bre
这个题蛮有意思的。学习了大佬的思路。
注意边界情况,当输入空数组时,返回了一个匿名数组的写法。
以及保证数组不越界,及时退出循环的思路。
我原来写的while循环条件是(cnt<num),且没有写退出循环的四个判断,是有问题的。
class Solution {
public int[] spiralOrder(int[][] matrix) {
if(matrix.length==0) return new int[0];
int l=0,r=matrix[0].length-1,u=0,d=matrix.length-1;
int [] res=new int[matrix.length*matrix[0].length];
int cnt=0;
int num=matrix.length*matrix[0].length;
while(true){
for(int i=l;i<=r;i++)
res[cnt++]=matrix[u][i];
if(++u>d) break;
for(int i=u;i<=d;i++)
res[cnt++]=matrix[i][r];
if(--r<l) break;
for(int i=r;i>=l;i--)
res[cnt++]=matrix[d][i];
if(--d<u)break;
for(int i=d;i>=u;i--)
res[cnt++]=matrix[i][l];
if(++l>r) break;
}
return res;
}
}
标签:没有 一个 打印 pre 有意思 -- break while循环 bre
原文地址:https://www.cnblogs.com/wsshub/p/14553978.html