54. 螺旋矩阵

Posted yangbocsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了54. 螺旋矩阵相关的知识,希望对你有一定的参考价值。

54. 螺旋矩阵

一、题目

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

二、参考代码

class Solution 
    public List<Integer> spiralOrder(int[][] matrix) 
        int m = matrix.length;
        int n = matrix[0].length;

        int x1 = 0, y1 =0 ;         // x1 上边界     y1 左边界 
        int x2 = m-1, y2 = n-1;     // x2 下边界     y2 右边界
        List<Integer> res = new LinkedList<>();
        while(res.size() < m*n)
             // 在顶部从左向右遍历  x1 上边界     x2 表示下边界
             if(x1 <= x2)
                 for(int j = y1; j <= y2; j++ )
                    res.add(matrix[x1][j]);
                 
                // 上边界下移
                x1++;
             

            // 在右侧从上向下遍历
            if(y1 <= y2)
                for(int i = x1; i <= x2;i++)
                    res.add(matrix[i][y2]);
                
                // 右边界左移
                y2--;
            

            // 在底部从右向左遍历
            if(x1 <= x2)
                for(int j = y2; j >= y1; j--)
                    res.add(matrix[x2][j]);
                
                // 下边界 上移
                x2--;
            

            // 在左侧从下向上遍历
            if(y1<=y2)
                for(int i = x2; i >= x1;i--)
                    res.add(matrix[i][y1]);
                
                // 左边界右移
                y1 ++;
            
        
        return res;
    

以上是关于54. 螺旋矩阵的主要内容,如果未能解决你的问题,请参考以下文章

54. 螺旋矩阵

54. 螺旋矩阵

54. 螺旋矩阵

LeetCode:螺旋矩阵54

Leetcode 54:Spiral Matrix 螺旋矩阵

Leetcode 54.螺旋矩阵