题目
对于一个矩阵,请设计一个算法,将元素按“之”字形打印。具体见样例。给定一个整数矩阵mat,以及他的维数nxm,请返回一个数组,其中元素依次为打印的数字。
测试样例:
[[1,2,3],[4,5,6],[7,8,9],[10,11,12]],4,3
返回:[1,2,3,6,5,4,7,8,9,12,11,10]
解答
判断当前行数为奇为偶,为偶则正向输出当前行,为奇则反向输出当前行。
/**
* 矩阵按照之字打印
*
* @author yunmo.hl
* @version $Id: ZhiPrintJuzhen.java, v 0.1 2018年04月14日 15:33 yunmo.hl Exp $
*/
public class ZhiPrintJuzhen {
/**
*
* @param origin
* @param m 列
* @param n 行
*/
public static void print(int[][] origin, int m, int n) {
for (int i = 0; i < n; i++) {
//为偶数行
if (i % 2 == 0) {
for (int j = 0; j < m; j++) {
System.out.print(origin[i][j]+" ");
}
System.out.println();
} else {
//奇数行
for (int j = m-1; j >= 0; j--) {
System.out.print(origin[i][j]+" ");
}
System.out.println();
}
}
}
public static void main(String[] args) {
int[][] origin = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
print(origin,3,4);
}
}