问题原文https://leetcode-cn.com/problems/diagonal-traverse/description/
public int[] findDiagonalOrder(int[][] matrix) {
int r = matrix.length;
if(r == 0) return new int[0];
int c = matrix[0].length;
boolean direction = true;//表示方向向上
int[] res = new int[r*c];
int i = 0;
int j = 0;
int count = -1;
while(i < r && j < c) {
res[++count] = matrix[i][j];
if(direction) {
int x = i-1;
int y = j+1;
if(x>=0&&y<c) {
i = x;
j = y;
}else {
if(y<c) {
j = y;
}else {
i+=1;
}
direction = !direction;
}
}else {
int x = i+1;
int y = j-1;
if(x<r&&y>=0) {
i = x;
j = y;
}else {
if(x<r) {
i = x;
}else {
j+=1;
}
direction = !direction;
}
}
}
return res;
}