螺旋矩阵~

简介: 螺旋矩阵~
class Solution {

    public List<Integer> spiralOrder(int[][] matrix) {

        List<Integer> order = new ArrayList<Integer>();

        if(matrix == null || matrix.length == 0 || matrix[0].length == 0){

            return order;

        }

        int rows = matrix.length;

        int colums = matrix[0].length;

        int left = 0, right = colums-1,top = 0 , bottom = rows-1;

        while(left<=right && top <= bottom ){

            for (int column = left; column <= right;column++){

                order.add(matrix[top][column]);

            }

            for(int row = top+1; row<=bottom; row++){

                order.add(matrix[row][right]);

            }

            // 检查是否需要继续遍历,如果当前区域不是一个行或列,则执行内部的遍历。

            if(left<right && top<bottom){

                //  从右到左遍历当前下边界,将元素添加到列表中

                for(int column = right-1 ; column>left ; column--){

                    order.add(matrix[bottom][column]);

                }

                for(int row = bottom; row>top; row--){

                    order.add(matrix[row][left]);

                }

            }

            // 更新边界值,缩小遍历区域。

            left++;

            right--;

            top++;

            bottom--;

        }

        //  返回按照螺旋顺序遍历矩阵后得到的整数列表

        return order;

    }

}


相关文章
|
21小时前
18. 四数之和
18. 四数之和
7 2
|
6天前
18.四数之和
18.四数之和
13 0
|
6天前
leetcode-54:螺旋矩阵
leetcode-54:螺旋矩阵
21 0
|
6天前
|
Java C++ Python
leetcode-59:螺旋矩阵 II
leetcode-59:螺旋矩阵 II
20 0
|
11月前
|
算法 安全 Swift
LeetCode - #59 螺旋矩阵 II
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
LeetCode - #59 螺旋矩阵 II
|
11月前
|
算法 安全 Swift
LeetCode - #54 螺旋矩阵
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
LeetCode - #54 螺旋矩阵
|
11月前
|
算法 安全 Swift
LeetCode - #18 四数之和
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
11月前
|
C++
螺旋矩阵II
螺旋矩阵II
|
11月前
|
机器学习/深度学习 Java Python
leetcode:59.螺旋矩阵II
leetcode:59.螺旋矩阵II
52 0
|
11月前
leetcode:54.螺旋矩阵
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
36 0