题解 | #螺旋矩阵#
螺旋矩阵
http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
import java.util.*;
public class Solution {
public ArrayList<Integer> spiralOrder(int[][] matrix) {
ArrayList<Integer> record=new ArrayList<Integer>();
if(matrix==null||matrix.length==0)return record;
int bottom=matrix.length-1;
int right=matrix[0].length-1;
int top=0;
int left=0;
while(top<=bottom&&left<=right){//只有一行或者只有一列也要进行循环啊
for(int i=left;i<=right;i++){
record.add(matrix[top][i]);
}
for(int i=top+1;i<=bottom;i++){
record.add(matrix[i][right]);
}
for(int i=right-1;i>=left+1&&top<bottom;i--){//防止只有一行,从右往左重复添加
record.add(matrix[bottom][i]);
}
for(int i=bottom;i>=top+1&&left<right;i--){//防止只有一列,从下网上重复添加
record.add(matrix[i][left]);
}
left++;
right--;
top++;
bottom--;
}
return record;
}
}
美团公司福利 3017人发布