题解 | #螺旋矩阵#
螺旋矩阵
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; } }