题目描述
给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
示例1
输入
[[1,2,3],[4,5,6],[7,8,9]]
返回值
[1,2,3,6,9,8,7,4,5]
import java.util.*;
public class Solution {
public ArrayList<Integer> spiralOrder(int[][] matrix) {
ArrayList<Integer> res = new ArrayList<Integer>();
if(matrix.length==0)
return res;
if(matrix[0].length==0)
return res;
int up = 0;
int down = matrix.length-1;
int left = 0;
int right = matrix[0].length-1;
while(true){
for(int i=left;i<=right;i++){
res.add(matrix[up][i]);
}
up++;
if(up>down)
return res;
for(int j=up;j<=down;j++){
res.add(matrix[j][right]);
}
right--;
if(right<left)
return res;
for(int k=right;k>=left;k--){
res.add(matrix[down][k]);
}
down--;
if(up>down)
return res;
for(int m=down;m>=up;m--){
res.add(matrix[m][left]);
}
left++;
if(right<left)
return res;
}
}
}