Spiral Matrix螺旋遍历矩阵
2024-09-07 11:35:33
假定有:
[
[ 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 ]
])
最新文章
- java反射机制,通过类名获取对象,通过方法名和参数调
- UVA 10090 Marbles 扩展欧几里得
- WCF服务显示的是服务器名称而不是IP地址...
- Debug阶段成员贡献分
- 《Linux内核分析》第四周 扒开系统调用的“三层皮”
- ADO.NET笔记20160322
- IMongoQuery的内部实现Query的用法
- nape.dynamics.InteractionGroup
- Project Management - 2) Estimate Your Work
- springmvc实现REST中的GET、POST、PUT和DELETE
- 关于SetCapture() 和 ReleaseCapture()的使用方法
- Unity扩展让枚举视图中变成多选框
- 【转】《分享一下我研究SQLSERVER以来收集的笔记》未整理
- sqlserver 更改跟踪相关知识
- Asp.net mvc 知多少(八)
- 多少牛逼的程序员毁在low逼的英文发音上(JAVA)
- Complete the Word CodeForces - 716B
- java控制台连接数据库
- 一对一关联模型,HAS_ONE
- Zabbix历史数据清理
热门文章
- JQuery加载并解析XML
- CentOs yum源安装 nginx
- SpringCloud系列一:微服务理解
- C----------输入一组整数,求出这组数字子序列和中的最大值,只要求出最大子序列的和,不必求出最大值对应的序列。
- LVM卷组命令
- DuiVision开发教程(18)-弹出窗
- Junit 内部解密之二: TestResult + TestListener + Assert
- iOS SDWebImage Error Domain=NSURLErrorDomain Code=-1202 “此服务器的证书无效
- (转) 对svn分支合并类型和深度的理解
- jquery基础研究学习【基础】