import java.util.ArrayList;
public class Solution {
//[1,2,3]
//[4,5,6]
//[7,8,9]
public ArrayList<Integer> spiralOrder(int[][] matrix) {
ArrayList<Integer> res = new ArrayList<>() ;
if(matrix == null|| matrix.length == 0 || matrix[0].length == 0) return res ;
int i = 0 ;
int j = 0 ;
int up = 0 ;
int down = matrix.length - 1 ;
int left = 0 ;
int right = matrix[0].length - 1 ;
while(i >= up && i <= down && j >= left && j <= right) {
//向右
while(i >= up && i <= down && j >= left && j <= right) {
res.add(matrix[i][j]) ;
j ++ ;
}
j -- ;
i ++ ;
up ++ ;
//向下
while(i >= up && i <= down && j >= left && j <= right) {
res.add(matrix[i][j]) ;
i ++ ;
}
i -- ;
j -- ;
right -- ;
//向左
while(i >= up && i <= down && j >= left && j <= right) {
res.add(matrix[i][j]) ;
j -- ;
}
j ++ ;
i -- ;
down -- ;
//向上
while(i >= up && i <= down && j >= left && j <= right) {
res.add(matrix[i][j]) ;
i -- ;
}
i ++ ;
j ++ ;
left ++ ;
}
return res ;
}
}