算法刷题(15)__之字形打印矩阵学习记录
【说明】
对于一个矩阵,请设计一个算法,将元素按“之”字形打印。具体见样例。
给定一个整数矩阵arr,以及他的维数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]
【算法实现】
package p2;
/**
* 之形打印字符串
* @author Guozhu Zhu
* @date 2018/7/28
* @version 1.0
*
*/
public class Test01 {
public static void main(String[] args) {
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};
int[] res = printer(arr, 4, 3);
for (int i : res) {
System.out.println(i);
}
}
public static int[] printer(int[][] arr, int m, int n) {
int count = 0;
int rows = 0;
int[] res = new int[m*n]; //返回的结果数组
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if ((rows%2) == 0) {
res[count++] = arr[i][j];
} else {
res[count++] = arr[i][n-1-j];
}
}
rows++; //行数加1
}
return res;
}
}