classSolution{public:vector<int>findDiagonalOrder(vector<vector<int>>&matrix){constintm=matrix.size();constintn=matrix[0].size();vector<int>ans(m*n);intd=1;// Left-bottom -> right-topintrow=0;intcol=0;for(inti=0;i<m*n;++i){ans[i]=matrix[row][col];row-=d;col+=d;// Out of boundif(row==m)row=m-1,col+=2,d=-d;if(col==n)col=n-1,row+=2,d=-d;if(row<0)row=0,d=-d;if(col<0)col=0,d=-d;}returnans;}};
classSolution{publicint[]findDiagonalOrder(int[][]matrix){finalintm=matrix.length;finalintn=matrix[0].length;int[]ans=newint[m*n];intd=1;// Left-bottom -> right-topintrow=0;intcol=0;for(inti=0;i<m*n;++i){ans[i]=matrix[row][col];row-=d;col+=d;// Out of boundif(row==m){row=m-1;col+=2;d=-d;}if(col==n){col=n-1;row+=2;d=-d;}if(row<0){row=0;d=-d;}if(col<0){col=0;d=-d;}}returnans;}}