zoukankan      html  css  js  c++  java
  • 【数组】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].

    思路:

    逐个环的打印, 对于m *n的矩阵,环的个数是 Math.ceil((Math.min(m,n))/2)。对于每个环顺时针打印四条边。

    注意的是:最后一个环可能只包含一行或者一列数据

    /**
     * @param {number[][]} matrix
     * @return {number[]}
     */
    var spiralOrder = function(matrix) {
        if(matrix.length==0||matrix==null){
            return [];
        }
        var m=matrix.length,n=matrix[0].length;
        var circle=Math.ceil((Math.min(m,n))/2);
        
        var a=m,b=n,res=[];
        for(var i=0;i<circle;i++,a-=2,b-=2){
            for(var col=i;col<i+b;col++){
                res.push(matrix[i][col]);
            }
            for(var row=i+1;row<i+a;row++){
                res.push(matrix[row][i+b-1]);
            }
            if(a==1||b==1)break;
            for(var col=i+b-2;col>=i;col--){
                res.push(matrix[i+a-1][col]);
            }
            for(var row=i+a-2;row>i;row--){
                res.push(matrix[row][i]);
            }
            
        }
        
        return res;
        
    };
  • 相关阅读:
    Charles下载和使用
    C# mvc读取模板并修改上传到web
    nginx 安装
    python 测试:wraps
    Linux下MySQL数据库常用基本操作 一
    myeclipse新建maven项目
    java 数据导入xls
    tomcat允许跨域请求:
    Import Projects from git
    c# DataTable 序列化json
  • 原文地址:https://www.cnblogs.com/shytong/p/5103981.html
Copyright © 2011-2022 走看看