资讯专栏INFORMATION COLUMN

LeetCode[54] Spiral Matrix

YFan / 2702人阅读

摘要:复杂度思路注意循环条件。代码注意循环条件,要用而不是除以,因为精度准换问题只有一行或者一列的时候,就不要再继续搜索了

LeetCode[54] Spiral Matrix

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

For example,
Given the following matrix:

[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]

You should return [1,2,3,6,9,8,7,4,5].

复杂度
O(MN), O(1)

思路
注意循环条件。

代码

    public List spiralOrder(int[][] matrix) {
        List res = new LinkedList<>();
        int count = 0;
        int rowlen = matrix.length;
        if(rowlen == 0) return res;
        int collen = matrix[0].length;
        //注意循环条件,要用*而不是除以,因为精度准换问题;
        while(count * 2 < rowlen && count * 2 < collen) {
            for(int i = count; i < collen - count; i ++) {
                res.add(matrix[count][i]);
            }
            for(int i = count + 1; i < rowlen - count; i ++) {
                res.add(matrix[i][collen - 1 - count]);
            }
            //只有一行或者一列的时候,就不要再继续搜索了;
            if(rowlen - count * 2 == 1 || collen - count * 2 == 1) break;
            for(int i = collen - 2 - count; i >= count; i --) {
                res.add(matrix[rowlen - 1- count][i]);
            }
            for(int i = rowlen - count - 2; i >= count + 1; i --) {
                res.add(matrix[i][count]);
            }
            count ++;
        }
        return res;
    }```

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66135.html

相关文章

  • Leetcode 54:Spiral Matrix 螺旋矩阵

    摘要:螺旋矩阵给定一个包含个元素的矩阵行列,请按照顺时针螺旋顺序,返回矩阵中的所有元素。每次转向或都会自减。循环可操作性很高,可以直接操作索引坐标改变遍历方式,不再赘述。 54:Spiral Matrix 螺旋矩阵 Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix i...

    venmos 评论0 收藏0
  • Leetcode 54:Spiral Matrix 螺旋矩阵

    摘要:螺旋矩阵给定一个包含个元素的矩阵行列,请按照顺时针螺旋顺序,返回矩阵中的所有元素。每次转向或都会自减。循环可操作性很高,可以直接操作索引坐标改变遍历方式,不再赘述。 54:Spiral Matrix 螺旋矩阵 Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix i...

    mochixuan 评论0 收藏0
  • leetcode54 Spiral Matrix

    摘要:题目要求按照顺时针方向旋转访问数组中的元素思路一按行遍历,转化为因为不允许跳跃插入,也就是说如果插入的大于的,就会报出。思路二利用顺序插入为了避免类型转化带来的不必要的性能下降,最好直接利用顺序插入,一次遍历数组。 题目要求 Given a matrix of m x n elements (m rows, n columns), return all elements of the ...

    琛h。 评论0 收藏0
  • leetcode59 Spiral Matrix II

    摘要:题目要求也就是将递加的数字按照顺时针的顺序依次填入数组之中这道题目联系到,其实就相当好解决了。 题目要求 Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For example, Given n = 3, You should return...

    QLQ 评论0 收藏0
  • [Leetcode] Spiral Matrix 螺旋矩阵

    摘要:代码添加该圈第一行添加最后一列添加最后一行添加第一列如果是奇数,加上中间那个点后续如果在中,给出的是和来代表行数和列数,该如何解决和的本质区别就是一个是任意长方形,一个是正方形,所以中不需要判断最后一行或者最后一列。 Spiral Matrix I Given a matrix of m x n elements (m rows, n columns), return all ele...

    waruqi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<