Les 8 meilleures questions et réponses d'entrevue sur l'algorithme (Mis à jour pour 2019)

Table des matières:

Anonim

Introduction aux questions et réponses d'entrevue d'algorithme

Préparation à un entretien d'embauche en algorithme. Je suis sûr que vous voulez connaître les questions et réponses d'entrevue d'algorithme 2019 les plus courantes qui vous aideront à déchiffrer facilement l'entrevue d'algorithme. Vous trouverez ci-dessous la liste des principales questions et réponses d'entrevue d'algorithme à votre secours.

Vous trouverez ci-dessous la liste des questions et réponses de l'interview Algorithm 2019, qui peuvent être posées lors d'une interview pour plus de fraîcheur et d'expérience.

1.Écrivez un algorithme pour inverser une chaîne. Par exemple, si ma chaîne est «vahbunA», mon résultat sera «Anubhav».

Répondre:
Étape 1: commencer
Étape 2: Prenez deux variables I et j.
Étape 3: j est positionné sur le dernier caractère (Techniquement, nous pouvons le faire par longueur (chaîne) -1)
Étape 4: I est positionné sur le premier caractère (nous pouvons le faire par chaîne (0))
Étape 5: La chaîne (i) est échangée Chaîne (j) Étape 6: Incrémentez I de 1
Étape 7: Incrémenter J de 1
Étape 8: Si «I»> «j», passez à l'étape 3
Étape 9: Arrêtez

2.Écrivez un algorithme pour insérer un nœud dans la liste chaînée en supposant que la liste chaînée est déjà triée.

Répondre:
Cas 1: si la liste chaînée est vide, définissez le nœud comme tête et renvoyez-le.
Code: New_node-> Next = head;
head = New_node
Cas 2: insérer un nœud au milieu
Code: While (P! = Insert_position)
(
P = p-> Suivant;
)
Store_next = P-> Next;
P-> Next = New_Node;
New_Node-> Next = Store_next;
Cas 3: insérez un nœud à la fin
Code: Alors que (P-> suivant! = Null)
(
P = P-> Suivant;
)
P-> Next = New_Node;
New_Node-> Next = null;

3.Écrivez un algorithme pour le tri des bulles.

Réponse: Nous allons implémenter l'algorithme de tri à bulles via le langage C.
Étape 1: répétez les étapes 2 et 3 pour I = 1 à 10
Étape 2: Réglez j = 1
Étape 3: Répéter pendant que j <= n (où n est le nombre d'éléments dans le tableau)
(Si a (i) <a (j) Puis échangez a (i) et a (j) (Fin de if))
Réglez j = j + 1
(Fin de la boucle interne) (Fin de la boucle externe de l'étape 1) Étape 4: Quitter

4.Écrivez un algorithme pour Heapsort.

Répondre:
Étape 1: Étant donné que l'arborescence satisfait la propriété max-Heap, le plus gros élément est stocké au nœud racine.
Étape 2: Retirez l'élément racine et placez à la fin du tableau (position nième) placez le dernier élément de l'arborescence (tas) à la place libre.
Étape 3: Réduisez la taille du segment de mémoire de 1 et segmentez à nouveau l'élément racine afin que l'élément le plus élevé se trouve à la racine.
Étape 4: Le processus est répété jusqu'à ce que tous les éléments de la liste soient triés.

5.Écrivez un algorithme pour la recherche de Fibonacci.

Répondre:
Étape 1: A est sorted_int_array;
Étape 2: prendre une variable c
Étape 3: Fib2 = 1, Fib1 = 1 et fib = 2
Étape 4: Alors que fib <n do (où n est le nombre d'éléments dans la liste)
Étape 5: attribuer la variable
Fib2 = Fib1
Fib1 = Fib
Fib = Fib1 + Fib2
Fin pendant
Étape 6: affectez la valeur à la variable temporaire I = 0, offset = 0;
Étape 7: Alors que Fib> 1 do
I = min (décalage + Fib2, n)
Si c <A (i) alors
Fib = Fib2
Fib1 = Fib1 - Fib2
Fib2 = Fib - Fib1
Sinon si c> A (i) alors
Fib = Fib1;
Fib1 = Fib2;
Fib2 = Fib - Fib1;
Décalage = I;
Autre
Retour vrai
Fin si
Fin pendant
Retour faux

6.Écrivez un algorithme de fonctionnement push and pop dans la pile.

Réponse: pour l'opération push
Ajouter une procédure (article, pile, N, haut)
(Insérez 'Item' dans la 'pile' de taille maximale 'n', le haut est le nombre d'éléments actuellement dans 'Stack')
Étape 1: Vérifier que la pile déborde?
Si (Haut> = N)
La pile déborde
Sortie
Étape 2: si la pile ne déborde pas, incrémentez la boucle
Haut = Haut + 1
Étape 3: insérez l'élément
Pile (haut) = article
Étape 4: quitter
Pour l'opération POP
Étape 1: Vérifier que la pile est sous-vide signifie vide
Si (Haut <= 0)
La pile est vide
Sortie
Étape 2: Si la pile n'est pas sous-alimentée, supprimez l'élément
Item = stack (top) Étape 3: décrémentation de la valeur supérieure
Haut = Haut - 1
Étape 4: quitter

7. Écrivez un algorithme pour l'opération d'insertion et de suppression dans la file d'attente.

Réponse: Pour l'opération d'insertion
Ajout de procédure (file d'attente, F, R, N, article)
(Cela insérera 'item' dans la 'file d'attente' après 'R' (rare) où 'n' est la taille du tableau.)
Étape 1: vérifier que la file d'attente est en débordement signifie que la file d'attente est pleine
Si (R> = N)
La file d'attente est pleine
Sortie
Étape 2: Si la file d'attente n'est pas débordée, incrémentez la boucle
R = R + 1
Étape 3: insérez un élément dans la file d'attente
File d'attente (R) = élément
Étape 4: Définition du pointeur «F» (avant)
Si (F = 0)
F = 1
Sortie
Pour l'opération de suppression dans la file d'attente
Suppression de procédure (file d'attente, F, R, élément)
(Supprimer 'élément' de la 'pile', 'F' est le pointeur frontal et 'R' est le pointeur rare de fin.
Étape 1: Vérifier que la file d'attente est sous-vide signifie vide
Si (R <= 0)
La file d'attente est vide
Sortie
Étape 2: suppression d'un élément de la file d'attente
Article = file d'attente (F) Étape 3: incrémentation de la valeur de F
F = F + 1
Étape 4: vérification de la file d'attente vide
Si (F> R)
Alors F = R = 0
Sortie

8.Écrivez un algorithme pour trouver la profondeur minimale d'un arbre binaire.

Réponse: Soit «nœud» le pointeur vers le nœud racine d'un sous-arbre.
Étape 1: si le nœud est égal à Null, retournez 0
Étape 2: Si le nœud est un nœud feuille, retournez 1.
Étape 3: Récursivement, trouvez la profondeur minimale du sous-arbre gauche et droit, que ce soit respectivement Profondeur minimale gauche et Profondeur minimale droite.
Étape 4: Pour obtenir la hauteur minimale de l'arbre enraciné au nœud, nous prendrons un minimum de profondeur min à gauche et de profondeur min à droite et 1 pour le nœud racine.
Programme:
Procédure minDepth (Node)
Étape 1: if (root = null)
Retour 0
Étape 2: if (root -> Left = Null and root -> right = Null)
Retour 1
Étape 3: si (racine -> gauche n'est pas nul)
Retourner minDepth (racine -> droite) + 1;
Étape 4: Si (root -> Right n'est pas nul)
Retourne minDepth (racine -> gauche) + 1;
Étape 5: renvoyer min (minDepth (racine -> gauche), minDepth (racine -> droite)) + 1

Articles recommandés

Ceci a été un guide complet des questions et réponses d'entrevue d'algorithme afin que le candidat puisse réprimer facilement ces questions d'entrevue d'algorithme. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Questions et réponses sur les entretiens avec Machine Learning
  2. Guide utile sur les questions d'entrevue Big Data
  3. Questions d'entretiens chez Elasticsearch
  4. Questions et réponses utiles pour l'entretien avec Apache PIG