Simple O(n^2) approach


#1
vector<vector<int> > Solution::diagonal(vector<vector<int> > &A) {
    int n=A.size();
    vector<vector<int>> ans(2*n-1);
    for(int i=0;i<n;i++){
        for(int j=0;j<=n-1-i;j++){
            ans[i+j].push_back(A[i][j]);
            
        }
        for(int j=i+1;j<=n-1;j++){
            ans[n+j-i-1].push_back(A[j][n-1-i]);
            
        }
    }
    return ans;
}