185. 矩阵的之字型遍历
给你一个包含 m x n 个元素的矩阵 (m 行, n 列), 求该矩阵的之字型遍历。
样例
样例 1:
输入: [[1]]
输出: [1]
样例 2:
输入:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10, 11, 12]
]
输出: [1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12]
public class Solution {
/**
* @param matrix: An array of integers
* @return: An array of integers
*/
public int[] printZMatrix(int[][] matrix) {
// write your code here
if (matrix == null) return null;
int m = matrix.length - 1;
int n = matrix[0].length - 1;
int[] ret = new int[matrix.length * matrix[0].length];
int flag = 0;
int i = 0;
int j = 0;
boolean isRight = true;
for (; flag < ret.length; flag++) {
ret[flag] = matrix[i][j];
if (isRight) {
if (j < n) {
j++;
if (i == 0) {
isRight = false;
} else {
i--;
}
} else {
i++;
isRight = false;
}
} else {
if (i < m) {
i++;
if (j == 0) {
isRight = true;
} else {
j--;
}
} else {
isRight = true;
j++;
}
}
}
return ret;
}
}