之字形遍历数组

这篇博客介绍了如何实现之字形遍历二维数组的算法。文章以一个m*n的矩阵为例,展示了从左上角开始,按照特定路径遍历所有元素的方法。在遍历过程中,涉及到向右、向左下、向右上和向下四种移动方式,并通过代码详细解释了这些移动策略如何确保遍历完整个矩阵。
摘要由CSDN通过智能技术生成

之字形遍历数组
题目要求:给丁一峰大小为m*n的矩阵,要求之字形遍历该矩阵,例如:
[[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
应该输出[1,2,5,9,6,3,4,7,10,11,8,12];

解题思路:
给定一个矩阵,我们从第一个元素进行遍历知道最后一个元素,遍历方式无非是以下四种,
step:1
向右移动(这种移动方式只会出现在row==0 || row == mat_rows-1;)
step2:
向右移动之后只会出现两种移动方式:
(1)向左下移动(row++,col–),左下移动之后,又有三种种移动方式,向下移动(col == 0);继续左下移动(col != 0);向右移动(row = mat_rows-1)
(2)向右上移动(row–,col++),右上移动之后,又有两种移动方式,向下移动(col == mat_cols-1),继续向右上移动;向右移动(row==0)
这样我们就遍历了所有的移动方式.
下面我们直接贴代码:

vector<int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值