假定有:

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

这样一个数组矩阵,现要求对其进行顺时针方向螺旋形从外至内地遍历,即输出: [1,2,3,6,9,8,7,4,5]

分析:

将每一次360度遍历视为一个周期,每一个周期分为上右下左四个阶段,逐个进行遍历:

以下是本人的草稿,请忽略苍劲如龙卷风摧朽拉枯般的字体。。。

理清思绪后就剩下笔了:

var spiralOrder = function(matrix) {
var x1= 0, y1= 0, x2= matrix[0].length- 1, y2= matrix.length- 1;
var result= []
while(x1<=x2 && y1<=y2){
for(var y= y1; y<= y2; y ++){
result.push(matrix[x1][y])
}
for(var x= x1+ 1; x<= x2; x ++){
result.push(matrix[x][y2])
}
for(var y= y2-1; y>= y1; y --){
result.push(matrix[x2][y])
}
for(var x= x2-1; x>= x1+1; x --){
result.push(matrix[x][y1])
}
++x1
++y1
--x2
--y2
}
console.log(result)
return result
};
spiralOrder([
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
])

最新文章

  1. java反射机制,通过类名获取对象,通过方法名和参数调
  2. UVA 10090 Marbles 扩展欧几里得
  3. WCF服务显示的是服务器名称而不是IP地址...
  4. Debug阶段成员贡献分
  5. 《Linux内核分析》第四周 扒开系统调用的“三层皮”
  6. ADO.NET笔记20160322
  7. IMongoQuery的内部实现Query的用法
  8. nape.dynamics.InteractionGroup
  9. Project Management - 2) Estimate Your Work
  10. springmvc实现REST中的GET、POST、PUT和DELETE
  11. 关于SetCapture() 和 ReleaseCapture()的使用方法
  12. Unity扩展让枚举视图中变成多选框
  13. 【转】《分享一下我研究SQLSERVER以来收集的笔记》未整理
  14. sqlserver 更改跟踪相关知识
  15. Asp.net mvc 知多少(八)
  16. 多少牛逼的程序员毁在low逼的英文发音上(JAVA)
  17. Complete the Word CodeForces - 716B
  18. java控制台连接数据库
  19. 一对一关联模型,HAS_ONE
  20. Zabbix历史数据清理

热门文章

  1. JQuery加载并解析XML
  2. CentOs yum源安装 nginx
  3. SpringCloud系列一:微服务理解
  4. C----------输入一组整数,求出这组数字子序列和中的最大值,只要求出最大子序列的和,不必求出最大值对应的序列。
  5. LVM卷组命令
  6. DuiVision开发教程(18)-弹出窗
  7. Junit 内部解密之二: TestResult + TestListener + Assert
  8. iOS SDWebImage Error Domain=NSURLErrorDomain Code=-1202 “此服务器的证书无效
  9. (转) 对svn分支合并类型和深度的理解
  10. jquery基础研究学习【基础】