public class PrintDiagonally {
public static void main(String[] args) {
int[][] matrix = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } };
printDiagonally(matrix);
}
public static void printDiagonally(int[][] m) {
if (m == null || m.length == 0 || m[0].length == 0)
return;
int rows = m.length, columns = m[0].length;
// 右上至左下
for (int j = columns - 1; j >= 0; j--) {
for (int i = 0; i < rows; i++)
if (j + i < columns)
System.out.print(m[i][i + j] + " ");
System.out.println();
}
for (int i = 1; i < rows; i++) {
for (int j = 0; j < columns; j++)
if (i + j < rows)
System.out.print(m[i + j][j] + " ");
System.out.println();
}
System.out.println("=============");
// 左上至右下
int maxSum = rows + columns - 2;
for (int sum = 0; sum <= maxSum; sum++) {
for (int i = 0; i <= sum; i++) {
if (i < rows && (sum - i) < columns) {
System.out.print(m[i][sum - i] + " ");
}
}
System.out.println();
}
}
}
Print Matrix Diagonally
最新推荐文章于 2020-03-20 13:36:49 发布