zoukankan      html  css  js  c++  java
  • [LeetCode][JavaScript]Spiral Matrix

    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].

    https://leetcode.com/problems/spiral-matrix/


    旋转抱歉。

    开四个变量,代表剩余矩形长度的开始、结束和宽度的开始、结束。

    四个值圈定了一个范围(也可以理解为两个点四个坐标:左上角X,Y和右下角X,Y,四个坐标确定一个矩形)。

    一开始高度从0到matrix.length,长度从0到matrix[0].length。

    每计算一边,缩小对应的长度或宽度的范围。

     1 /**
     2  * @param {number[][]} matrix
     3  * @return {number[]}
     4  */
     5 var spiralOrder = function(matrix) {
     6     var res = [], i;
     7     var m = matrix.length, n = (m === 0 ? 0 : matrix[0].length);
     8     var heightStart = 0, heightEnd = m - 1, widthStart  = 0, widthEnd = n - 1;
     9     while(heightStart <= heightEnd && widthStart <= widthEnd){
    10         for(i = widthStart; i <= widthEnd; i++){
    11             res.push(matrix[heightStart][i]);
    12         }
    13         heightStart++;
    14         for(i = heightStart; i <= heightEnd; i++){
    15             res.push(matrix[i][widthEnd]);
    16         }
    17         widthEnd--;
    18         if(heightStart <= heightEnd){
    19             for(i = widthEnd; i >= widthStart; i--){
    20                 res.push(matrix[heightEnd][i]);
    21             }
    22             heightEnd--;
    23         }
    24         if(widthStart <= widthEnd){
    25             for(i = heightEnd; i >= heightStart; i--){
    26                 res.push(matrix[i][widthStart]);
    27             }
    28             widthStart++;
    29         } 
    30     }
    31     return res;
    32 };
  • 相关阅读:
    Hello_Area_Description 任务三:Project Tango采集区域描述数据
    智能小车 机器人
    Hello_Depth_Perception 任务二:Project Tango采集深度感知数据
    Project Tango Explorer
    make运行阶段划分
    关于chroot
    xargs命令
    debian配置集锦
    gdb使用技巧
    gdb调试使用autotools工程的项目
  • 原文地址:https://www.cnblogs.com/Liok3187/p/4842329.html
Copyright © 2011-2022 走看看