之字形遍历数组
题目要求:给丁一峰大小为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