- 我们根据下标和可以将一组一组的数字分离成数组,存在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;
}
};