498. 对角线遍历
498. 对角线遍历
题目链接:498. 对角线遍历
代码如下:
class Solution {
public:vector<int> findDiagonalOrder(vector<vector<int>>& mat) {int m = mat.size(), n = mat[0].size();vector<int> res;res.reserve(m * n); // 预分配空间for (int k = 0;k < m + n - 1;k++) {int min_j = max(k - m + 1, 0);int max_j = min(k, n - 1);if (k % 2 == 0) {//偶数从左到右for (int j = min_j;j <= max_j;j++) {res.push_back(mat[k - j][j]);}}else {//奇数从右到左for (int j = max_j;j >= min_j;j--) {res.push_back(mat[k - j][j]);}}}return res;}
};