LeetCode: transversal diagonal

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;
    }
};

Supongo que te gusta

Origin www.cnblogs.com/breezy-ye/p/12721529.html
Recomendado
Clasificación