G面经Prepare: Print Zigzag Matrix
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 }