用java写出:对角线遍历
时间: 2023-07-12 22:30:55 浏览: 53
以下是使用Java语言实现对角线遍历的代码示例:
```java
public class DiagonalTraversal {
public int[] findDiagonalOrder(int[][] matrix) {
if (matrix == null || matrix.length == 0) {
return new int[0];
}
int m = matrix.length;
int n = matrix[0].length;
int[] result = new int[m * n];
int row = 0;
int col = 0;
for (int i = 0; i < m * n; i++) {
result[i] = matrix[row][col];
if ((row + col) % 2 == 0) {
// moving up
if (col == n - 1) {
row++;
} else if (row == 0) {
col++;
} else {
row--;
col++;
}
} else {
// moving down
if (row == m - 1) {
col++;
} else if (col == 0) {
row++;
} else {
row++;
col--;
}
}
}
return result;
}
}
```
该算法的时间复杂度为$O(mn)$,空间复杂度为$O(1)$。