3
vector<int> findDiagonalOrder(vector<vector<int>> &mat) {5
int m = mat.size() - 1, n = mat[0].size() - 1;11
for (int i{0}; i <= n; ++i) {12
vec.push_back(mat.at(0).at(i));16
for (int i{0}; i <= m; ++i) {17
vec.push_back(mat.at(i).at(0));21
for (int k{0}; k <= m + n; k++) {23
vec.push_back(mat.at(0).at(0));25
} else if (k == m + n) {26
vec.push_back(mat.at(m).at(n));27
} else if (k % 2 != 0) {28
while (i <= m && j >= 0 && j <= n) {29
vec.push_back(mat.at(i).at(j));33
if (i <= m && j < 0) {35
} else if (i > m && j >= 0) {38
} else if (i > m && j < 0) {44
while (i >= 0 && j <= n) {45
vec.push_back(mat.at(i).at(j));49
if (i < 0 && j <= n) {51
} else if (i < 0 && j > n) {54
} else if (i > m && j < 0) {57
} else if (i >= 0 && j > n) {