Transversal diagonal
Solicitud
Dada una matriz con elementos M x N (M filas, N columnas), devuelve todos los elementos en esta matriz en orden transversal diagonal.
Ideas
Juzgar filas pares e impares, realizando M y N para aumentar o disminuir el tamaño.
Ejemplos
class Solution {
public:
vector<int> findDiagonalOrder(vector<vector<int>>& matrix) {
vector<int> out;
if(matrix.empty()){
return out;
}
int i=0,j=0,sum=matrix[0].size()*matrix.size();
for(int count=0;count<sum;count++){
out.push_back(matrix[i][j]);
if((i+j)%2==0){//偶数行
if(j==matrix[0].size()-1){
i++;
}else if(i==0){
j++;
}else{
i--;
j++;
}
}
else{//奇数行
if(i==matrix.size()-1){
j++;
}else if(j==0){
i++;
}else{
i++;
j--;
}
}
}
return out;
}
};