Einführung in Algorithmus Interview Fragen und Antworten

Vorbereitung auf ein Vorstellungsgespräch in Algorithm. Ich bin sicher, Sie möchten die häufigsten Fragen und Antworten zum Algorithmus-Interview für 2019 kennenlernen, mit denen Sie das Algorithmus-Interview mühelos knacken können. Nachstehend finden Sie eine Liste der wichtigsten Fragen und Antworten zum Algorithmusinterview, die Ihnen zur Seite stehen.

Nachfolgend finden Sie eine Liste der Fragen und Antworten zum Algorithmus-Interview für 2019, die während eines Interviews gestellt werden können, um sich zu aktualisieren und Erfahrungen zu sammeln.

1.Schreibe einen Algorithmus, um einen String umzukehren. Wenn meine Zeichenfolge beispielsweise "vahbunA" lautet, lautet mein Ergebnis "Anubhav".

Antworten:
Schritt 1: Starten
Schritt 2: Nehmen Sie zwei Variablen I und j.
Schritt 3: j ist auf dem letzten Zeichen positioniert (technisch können wir dies durch Länge (String) -1 tun)
Schritt 4: Ich befinde mich auf dem ersten Zeichen (wir können dies durch einen String (0) tun)
Schritt 5: String (i) wird vertauscht String (j) Schritt 6: Inkrementiere I um 1
Schritt 7: Erhöhe J um 1
Schritt 8: Wenn 'I'> 'j', fahren Sie mit Schritt 3 fort
Schritt 9: Stopp

2.Schreiben Sie einen Algorithmus, um einen Knoten in die verknüpfte Liste einzufügen, vorausgesetzt, die verknüpfte Liste ist bereits sortiert.

Antworten:
Fall 1: Wenn die verknüpfte Liste leer ist, legen Sie den Knoten als Kopf fest und geben Sie ihn zurück.
Code: New_node-> Next = head;
head = New_node
Fall 2: Knoten in die Mitte einfügen
Code: While (P! = Insert_position)
(
P = p-> Weiter;
)
Store_next = P-> Next;
P-> Next = New_Node;
New_Node-> Next = Store_next;
Fall 3: Fügen Sie am Ende einen Knoten ein
Code: While (P-> next! = Null)
(
P = P-> Weiter;
)
P-> Next = New_Node;
New_Node-> Next = null;

3.Schreibe einen Algorithmus für die Blasensortierung.

Antwort: Wir werden den Blasensortierungsalgorithmus in der Sprache C implementieren.
Schritt 1: Wiederholen Sie Schritt 2 und Schritt 3 für I = 1 bis 10
Schritt 2: Setze j = 1
Schritt 3: Wiederholen, während j <= n (wobei n die Anzahl der Elemente im Array ist)
(Wenn a (i) <a (j), dann tausche a (i) und a (j) aus (Ende von if))
Setze j = j + 1
(Ende der inneren Schleife) (Ende der äußeren Schleife von Schritt 1) ​​Schritt 4: Beenden

4.Schreibe einen Algorithmus für Heapsort.

Antworten:
Schritt 1: Da der Baum die Eigenschaft max-Heap erfüllt, wird das größte Element im Stammknoten gespeichert.
Schritt 2: Entfernen Sie das Wurzelelement und platzieren Sie am Ende des Arrays (n-te Position) das letzte Element des Baums (Heap) an der freien Stelle.
Schritt 3: Reduzieren Sie die Größe des Heapspeichers um 1 und häufen Sie das Stammelement erneut auf, sodass sich das höchste Element am Stamm befindet.
Schritt 4: Der Vorgang wird wiederholt, bis alle Elemente der Liste sortiert sind.

5.Schreibe einen Algorithmus für die Fibonacci-Suche.

Antworten:
Schritt 1: A ist sortiert_int_array;
Schritt 2: Nehmen Sie eine Variable c
Schritt 3: Fib2 = 1, Fib1 = 1 und Fib = 2
Schritt 4: Während fib <n do (wobei n die Nummer des Elements in der Liste ist)
Schritt 5: Weisen Sie die Variable zu
Fib2 = Fib1
Fib1 = Fib
Fib = Fib1 + Fib2
Beende während
Schritt 6: Weisen Sie den Wert der temporären Variablen I = 0, offset = 0 zu.
Schritt 7: Während Fib> 1 tun
I = min (Offset + Fib2, n)
Wenn c <A (i) dann
Fib = Fib2
Fib1 = Fib1 - Fib2
Fib2 = Fib - Fib1
Sonst, wenn c> A (i) dann
Fib = Fib1;
Fib1 = Fib2;
Fib2 = Fib - Fib1;
Offset = I;
Sonst
Rückgabe wahr
Ende wenn
Beende während
Falsch zurückgeben

6.Schreiben Sie einen Algorithmus für die Push- und Pop-Operation im Stapel.

Antwort: Für Push-Betrieb
Vorgehensweise Hinzufügen (Item, Stack, N, Top)
(Fügen Sie 'Item' in den 'Stack' mit der maximalen Größe 'n' ein. Oben ist die Anzahl der Elemente, die sich derzeit im 'Stack' befinden.)
Schritt 1: Überprüfen Sie, ob der Stack überläuft.
If (Top> = N)
Stack ist übergelaufen
Ausgang
Schritt 2: Wenn der Stapel nicht überläuft, erhöhen Sie die Schleife
Top = Top + 1
Schritt 3: Fügen Sie das Element ein
Stapel (oben) = Gegenstand
Schritt 4: Beenden
Für den POP-Betrieb
Schritt 1: Überprüfen Sie, ob der Stapel nicht voll ist
If (Top <= 0)
Der Stapel ist leer
Ausgang
Schritt 2: Wenn der Stapel nicht voll ist, löschen Sie das Element
Gegenstand = Stapel (oben) Schritt 3: Verringern des oberen Wertes
Top = Top - 1
Schritt 4: Beenden

7.Schreiben Sie einen Algorithmus zum Einfügen und Löschen in die Warteschlange.

Antwort: Zum Einsetzen
Prozedur hinzufügen (Warteschlange, F, R, N, Element)
(Dadurch wird 'item' in die 'queue' nach 'R' (rare) eingefügt, wobei 'n' die Größe des Arrays ist.)
Schritt 1: Überprüfen Sie, ob die Warteschlange überläuft. Dies bedeutet, dass die Warteschlange voll ist
Wenn (R> = N)
Die Warteschlange ist voll
Ausgang
Schritt 2: Wenn die Warteschlange nicht überfüllt ist, erhöhen Sie die Schleife
R = R + 1
Schritt 3: Fügen Sie ein Element in die Warteschlange ein
Warteschlange (R) = Artikel
Schritt 4: Einstellen des Zeigers 'F' (vorne)
Wenn (F = 0)
F = 1
Ausgang
Zum Löschen in der Warteschlange
Prozedur löschen (Queue, F, R, Item)
(Löschen Sie 'item' aus dem 'stack', 'F' ist der Front-End-Zeiger und 'R' ist der seltene End-Zeiger.
Schritt 1: Check Queue is underflow bedeutet leer
Wenn (R <= 0)
Die Warteschlange ist leer
Ausgang
Schritt 2: Löschen eines Elements aus der Warteschlange
Gegenstand = Warteschlange (F) Schritt 3: Inkrementieren des Wertes von F
F = F + 1
Schritt 4: Überprüfen der leeren Warteschlange
Wenn (F> R)
Dann ist F = R = 0
Ausgang

8.Schreiben Sie einen Algorithmus, um die Mindesttiefe eines Binärbaums zu ermitteln.

Antwort: Sei „Knoten“ der Zeiger auf den Wurzelknoten eines Teilbaums.
Schritt 1: Wenn der Knoten Null ist, geben Sie 0 zurück
Schritt 2: Wenn der Knoten ein Blattknoten ist, geben Sie 1 zurück.
Schritt 3: Ermitteln Sie rekursiv die minimale Tiefe des linken und rechten Unterbaums, wobei die minimale Tiefe links und rechts sein muss.
Schritt 4: Um die minimale Höhe des Baumes zu erhalten, der am Knoten verwurzelt ist, nehmen wir ein Minimum von links, rechts und 1 für den Wurzelknoten.
Programm:
Prozedur minDepth (Knoten)
Schritt 1: if (root = null)
0 zurückgeben
Schritt 2: if (root -> Left = Null und root -> right = Null)
Rückgabe 1
Schritt 3: if (root -> left ist nicht null)
Rückgabe minDepth (root -> right) + 1;
Schritt 4: If (root -> Right ist nicht null)
Rückgabe minDepth (root -> left) + 1;
Schritt 5: min (minDepth (root -> left), minDepth (root -> right)) + 1 zurückgeben

Empfohlene Artikel

Dies ist ein umfassender Leitfaden für die Fragen und Antworten zum Algorithmus-Interview, damit der Kandidat diese Fragen zum Algorithmus-Interview leicht durchgreifen kann. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Maschinelles Lernen Interview Fragen und Antworten
  2. Nützlicher Leitfaden für Fragen zu Big Data-Vorstellungsgesprächen
  3. Wichtige Fragen zum Elasticsearch-Interview
  4. Nützliche Fragen und Antworten zu Apache PIG-Vorstellungsgesprächen