题解 | #螺旋矩阵,模拟#
螺旋矩阵
http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
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 ;
}
}
一个菜鸟的算法刷题记录 文章被收录于专栏
分享一个菜鸟的成长记录

