Offre Sword Finger ------------ Recherche dans un tableau à deux dimensions

Insérez la description de l'image ici

Lien de sujet!

Idée: Pour
cette question, nous pouvons partir de la condition du tableau de contraintes dans la question. Chaque ligne est triée par ordre croissant de gauche à droite, et chaque colonne est triée par ordre croissant de haut en bas, afin que nous puissions commencer à partir du coin supérieur gauche Démarrez la traversée, si l'élément courant est supérieur à la cible, supprimez cette colonne; si elle est inférieure à, supprimez cette ligne.

Code:


class Solution {
    
    
public:
    bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
    
    
        if(matrix.size()==0) return false;
        int i = 0, j = matrix[0].size()-1;
        while(i <= matrix.size()-1 && j >=0 )
        {
    
    
            if(matrix[i][j] > target) --j;
            else if(matrix[i][j] < target) ++i;
            else return true;
        }
        return false;
    }
};

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43743711/article/details/115051121
conseillé
Classement