54. 螺旋矩阵

2021-06-01 22:00:05 浏览数 (1)

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

模拟

代码语言:javascript复制
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        //保存结果的
        List<Integer> list=new ArrayList();
        //大模拟
            //定义左边界
            int left=0;
            //定义右便捷
            int right=matrix[0].length-1;
            //定义下边界
            int down=matrix.length-1;
            //定义上边界
            int up=0;

            while(true){
                //向右走
                for(int i=left;i<=right;i  ){
                  
                    list.add(matrix[up][i]);
                }
              
                up  ;

                if(up>down)break;
                //向下走
               for(int i=up;i<=down;i  ){
                
                    list.add(matrix[i][right]);
                }
                
                right--;
                if(right<left) break;
                //向左走
                for(int i=right;i>=left;i--){
                    list.add(matrix[down][i]);
                }
               
                down--;

                if(down<up)break;
                //向上走
                for(int i=down;i>=up;i--){
                    list.add(matrix[i][left]);
                }
                left  ;
                
                if(left>right)break;
            }

            return list;

    }
}

0 人点赞