简单题
class Solution {
public:
vector<int> findDiagonalOrder(vector<vector<int>>& matrix) {
vector<int> result;
if(matrix.size()==0||matrix[0].size()==0)
return result;
else
{
int row=matrix.size();
int col=matrix[0].size();
int i=0;
int j=0;
int direction=1;//1:up;0:down
result.push_back(matrix[0][0]);
//cout<<matrix[0][1]<<endl;
while(1)
{
if(direction==1)
{
if(i-1>=0&&j+1<=col-1)
{
result.push_back(matrix[--i][++j]);
}
else if(j+1<=col-1)
{
result.push_back(matrix[i][++j]);
direction=0;
}
else if(i+1<=row-1)
{
result.push_back(matrix[++i][j]);
direction=0;
}
else
return result;
}
else
{
if(i+1<=row-1&&j-1>=0)
{
result.push_back(matrix[++i][--j]);
}
else if(i+1<=row-1)
{
result.push_back(matrix[++i][j]);
direction=1;
}
else if(j+1<=col-1)
{
result.push_back(matrix[i][++j]);
direction=1;
}
else
return result;
}
//cout<<matrix[i][j]<<endl;
}
}
}
};