首页 > 编程语言 > 详细

[LeetCode][JavaScript]Spiral Matrix

时间:2015-09-27 16:08:08      阅读:155      评论:0      收藏:0      [点我收藏+]

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/

 

 


 

 

旋转抱歉。

开四个变量,长度的开始、结束和宽度的开始、结束。

一开始高度从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 };

 

 

 

[LeetCode][JavaScript]Spiral Matrix

原文:http://www.cnblogs.com/Liok3187/p/4842329.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!