Advertisement
sanych_dv

spiral order

Jan 18th, 2015
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     static public function spiralOrder(matrix:Array):Array
  2.         {
  3.            
  4.             var arr:Array = [];
  5.            
  6.             var stopLevel:int = Math.ceil(matrix.length / 2);
  7.            
  8.             for (var level:int = 0; level < stopLevel; level++)
  9.             {
  10.                
  11.                 var start:int = level;
  12.                 var end:int = matrix[0].length - level;
  13.                
  14.                 var endLevel:int = matrix.length - level;
  15.                
  16.                 //  top
  17.                 for (var i:int = start; i < end; i++)
  18.                 {
  19.                     arr.push({h: level, v: i});
  20.                 }
  21.                
  22.                 // right
  23.                 for (var j:int = level + 1; j < endLevel; j++)
  24.                 {
  25.                     arr.push({h: j, v: end - 1});
  26.                 }
  27.                
  28.                 // bottom
  29.                 for (var k:int = end - 2; k > start; k--)
  30.                 {
  31.                     arr.push({h: endLevel - 1, v: k});
  32.                 }
  33.                
  34.                 // left
  35.                 for (var l:int = endLevel - 1; l > level; l--)
  36.                 {
  37.                     arr.push({h: l, v: start});
  38.                 }
  39.                
  40.             }
  41.            
  42.             return arr;
  43.        
  44.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement