Heim  >  Artikel  >  Backend-Entwicklung  >  C++ implementiert die Suche in zweidimensionalen Arrays

C++ implementiert die Suche in zweidimensionalen Arrays

little bottle
little bottleOriginal
2019-04-09 11:14:573383Durchsuche

Heute habe ich im Internet eine kleine Frage gesehen, bei der es um die Suche in einem zweidimensionalen Array geht. Wenn Sie interessiert sind, schauen Sie sich den Code an Sie können es nachahmen und schreiben!

C++ implementiert die Suche in zweidimensionalen Arrays

Frage:

In einem zweidimensionalen Array wird jede Zeile in aufsteigender Reihenfolge von links nach rechts sortiert wird in aufsteigender Reihenfolge von oben nach unten sortiert. Bitte vervollständigen Sie eine Funktion, geben Sie ein solches zweidimensionales Array und eine Ganzzahl ein und bestimmen Sie, ob das Array die Ganzzahl enthält.

1. Idee

Wählen Sie zunächst die Zahl in der oberen rechten Ecke des Arrays aus. Wenn die Zahl mit der gesuchten Zahl übereinstimmt, endet der Suchvorgang. Wenn die Zahl größer als das gesuchte Array ist, entfernen Sie die Spalte, in der sich die Zahl befindet Suchen Sie nach der Zeile, in der sich die Nummer befindet. Das heißt, wenn sich die zu findende Zahl nicht in der oberen rechten Ecke des Arrays befindet, wird jedes Mal eine Zeile oder Spalte aus dem Suchbereich des Arrays entfernt, sodass der Suchbereich bei jedem Schritt eingegrenzt werden kann bis die zu suchende Nummer gefunden wird oder der Suchbereich null ist.

2. Beispiel

Wenn die Zahl 7 in einem zweidimensionalen Array gefunden wird, geben Sie true zurück, wenn nicht, geben Sie false zurück.

1 2 8 9

2 4 9 12

4 7 1 0 13

6 8 11 15

Der Suchvorgang lautet wie folgt:

C++ implementiert die Suche in zweidimensionalen Arrays

3. Programmierimplementierung

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rows = array.size();
        int cols = array[0].size();
        if(!array.empty() && rows > 0 && cols > 0){
            int row = 0;
            int col = cols - 1;
            while(row < rows && col >= 0){
                if(array[row][col] == target){
                    return true;
                }
                else if(array[row][col] > target){
                    --col;
                }
                else{
                    ++row;
                }
            }
        }
        return false;
    }
};

[Empfohlener Kurs: C++-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonC++ implementiert die Suche in zweidimensionalen Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn