For instance, give row = 4, col = 5, print matrix in zigzag order like:
[1, 8, 9, 16, 17]
[2, 7, 10, 15, 18]
[3, 6, 11, 14, 19]
[4, 5, 12, 13, 20]
1 package GooglePhone;
2
3 import java.util.Arrays;
4
5 public class PrintMatrix {
6
7 static void print(int rows, int cols) {
8 int limit = rows * cols;
9 int T = rows * 2; // cycle
10 for (int i=1; i<=rows; i++) {
11 int[] curRow = new int[cols];
12 int k = 0;
13 int index = 0;
14 while (k * T + i <= limit || k * T + T - i + 1 <= limit) {
15 if (k * T + i <= limit) curRow[index++] = k * T + i;
16 if (k * T + T - i + 1 <= limit) curRow[index++] = k * T + T - i + 1;
17 k++;
18 }
19 System.out.println(Arrays.toString(curRow));
20 }
21
22 }
23 /**
24 * @param args
25 */
26 public static void main(String[] args) {
27 // TODO Auto-generated method stub
28 print(4, 5);
29 //print(3, 5);
30 }
31
32 }