LeetCode周赛第186场 5394. 对角线遍历 II(附带图解)

题目链接
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 我们根据下标和可以将一组一组的数字分离成数组,存在map中,为了保证是按顺序的,所以可以从左下角开始遍历,根据遇到数字的下标和,将数字放进相应的数组里,最后依次输出即可
class Solution {
    
    
public:
    vector<int> findDiagonalOrder(vector<vector<int>>& nums) {
    
    
        map<int, vector<int> > q;
        int n=nums.size()-1;
        for(int i=n;i>=0;i--)
        {
    
    
            for(int j=0;j<nums[i].size();j++)
            {
    
    
                q[i+j].push_back(nums[i][j]);
            }
        }
        vector<int> ans;
        for(auto x: q)
        {
    
    
            for(auto y:x.second)
            ans.push_back(y);
        }
        return ans;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_43663263/article/details/105772292
今日推荐