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