跳转至

5394.对角线遍历 II (Medium)*

题目描述*

思路 & 代码*

主要问题在于输入并不是矩阵,而是长短不一的,需要注意遍历的边界问题。对角线的话就是以 i + j 遍历。

tmlgb 我时间复杂度也是 n * 2 就不懂为啥会超时。。。

class Solution {
public:
    vector<int> findDiagonalOrder(vector<vector<int>>& nums) {
        map<int, vector<int>> mp;
        for(int i = nums.size() - 1; i >= 0; i--) {
            for(int j = 0, n = nums[i].size(); j < n; j++) {
                mp[i + j].push_back(nums[i][j]);
            }
        }
        vector<int> res;
        for(auto& m : mp) {
            for(auto& i : m.second) {
                res.push_back(i);
            }
        }
        return res;
    }
};

最后更新: July 23, 2022