Given a 2D matrix, print all elements of the given matrix in diagonal order. For example, consider the following 5 X 4 input matrix.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Diagonal printing of the above matrix is
1 5 2 9 6 3 13 10 7 4 17 14 11 8 18 15 12 19 16 20
public void printDiagonal(int[][] A) {
int m = A.length, n = A[0].length;
for (int i = 0; i < m+n-1; i++) {
int row = Math.min(i, m-1);
int col = Math.max(0, i-m+1);
while(row>=0 && col<n) {
System.out.print(A[row--][col++] + " ");
}
System.out.println();
}
}