Úvod do otázek a odpovědí na rozhovor s algoritmy

Příprava na pracovní pohovor v algoritmu. Jsem si jistý, že chcete znát nejčastější dotazy a odpovědi týkající se algoritmu 2019 Algorithm Interview, které vám pomohou snadno rozbít rozhovor s algoritmy. Níže je uveden seznam nejlepších otázek a odpovědí na rozhovor s Algorithm při vaší záchraně.

Níže je uveden seznam otázek a odpovědí na otázky týkající se algoritmu 2019 Algorithm Interview, které mohou být během rozhovoru pokládány za čerstvější a zážitkové.

1.Napište algoritmus pro obrácení řetězce. Pokud je například můj řetězec „vahbunA“, bude mým výsledkem „Anubhav“.

Odpovědět:
Krok 1: Start
Krok 2: Vezměte dvě proměnné I a j.
Krok 3: j je umístěn na posledním znaku (Technicky to můžeme udělat podle délky (řetězec) -1)
Krok 4: I je umístěn na první znak (můžeme to provést řetězec (0))
Krok 5: Řetězec (i) je zaměnitelný Řetězec (j) Krok 6: Přírůstek I o 1
Krok 7: Přírůstek J o 1
Krok 8: Pokud „I“> „j“, přejděte ke kroku 3
Krok 9: Zastavte

2.Napište algoritmus pro vložení uzlu do propojeného seznamu za předpokladu, že je propojený seznam již seřazený.

Odpovědět:
Případ 1: Pokud je propojený seznam prázdný, vytvořte uzel jako hlavu a vraťte jej.
Kód: New_node-> Next = head;
head = New_node
Případ 2: Vložte uzel uprostřed
Kód: Zatímco (P! = Insert_position)
(
P = p-> Další;
)
Store_next = P-> Další;
P-> Další = New_Node;
New_Node-> Next = Store_next;
Případ 3: Na konec vložte uzel
Kód: Zatímco (P-> další! = Null)
(
P = P-> Další;
)
P-> Další = New_Node;
New_Node-> Next = null;

3.Napište algoritmus pro třídění bublin.

Odpověď: Chystáme implementovat algoritmus třídění bublin pomocí jazyka C.
Krok 1: Opakujte kroky 2 a 3 pro I = 1 až 10
Krok 2: Nastavte j = 1
Krok 3: Opakujte, zatímco j <= n (kde n je počet prvků v poli)
(Pokud a (i) <a (j) Potom zaměňte a (i) a a (j) (Konec if))
Sada j = j + 1
(Konec vnitřní smyčky) (Vnější smyčka na konci kroku 1) Krok 4: Konec

4.Napište algoritmus pro Heapsort.

Odpovědět:
Krok 1: Protože strom splňuje vlastnost max-Heap, je největší položka uložena v kořenovém uzlu.
Krok 2: Odstraňte kořenový prvek a umístěte jej na konec pole (n-tá pozice), položte poslední položku stromu (haldy) na volné místo.
Krok 3: Zmenšete velikost haldy o 1 a znovu zkompletujte kořenový prvek tak, abychom měli nejvyšší kořenový kořen.
Krok 4: Proces se opakuje, dokud nejsou všechny položky seznamu seřazeny.

5.Napište algoritmus pro Fibonacciho hledání.

Odpovědět:
Krok 1: A je sort_int_array;
Krok 2: vezměte jednu proměnnou c
Krok 3: Fib2 = 1, Fib1 = 1 a fib = 2
Krok 4: Zatímco fib <n do (kde n je počet prvků v seznamu)
Krok 5: Přiřaďte proměnnou
Fib2 = Fib1
Fib1 = Fib
Fib = Fib1 + Fib2
Konec chvíli
Krok 6: Přiřaďte hodnotu dočasné proměnné I = 0, offset = 0;
Krok 7: Zatímco Fib> 1 ano
I = min (offset + Fib2, n)
Pokud tedy c <A (i), pak
Fib = Fib2
Fib1 = Fib1 - Fib2
Fib2 = Fib - Fib1
Jinak pokud c> A (i), pak
Fib = Fib1;
Fib1 = Fib2;
Fib2 = Fib - Fib1;
Offset = I;
Jiný
Návrat pravda
Konec pokud
Konec chvíli
Návrat nepravdivý

6.Napište algoritmus push and pop operace v zásobníku.

Odpověď: Pro provoz Push
Postup přidání (položka, zásobník, N, nahoře)
(Vložte „položku“ do „zásobníku“ maximální velikosti „n“, horní je počet prvků aktuálně ve „zásobníku“)
Krok 1: Zkontrolujte, zda je zásobník přetečen?
Pokud (Nahoru> = N)
Zásobník je přetečený
Výstup
Krok 2: Pokud zásobník nepřetéká, zvyšte smyčku
Top = Top + 1
Krok 3: Vložte prvek
Stack (Top) = Položka
Krok 4: Konec
Pro provoz POP
Krok 1: Zkontrolujte, zda je zásobník podtokem prázdný
Pokud (Top <= 0)
Zásobník je prázdný
Výstup
Krok 2: Pokud zásobník není podtečený, pak odstranění prvku
Item = stack (top) Krok 3: dekrementace horní hodnoty
Top = Top - 1
Krok 4: Konec

7.Napište algoritmus pro operace vložení a odstranění ve frontě.

Odpověď: Pro operaci vkládání
Postup přidání (fronta, F, R, N, položka)
(Tímto se vloží „položka“ do „fronty“ za „R“ (vzácné), kde „n“ je velikost pole.)
Krok 1: Check Queue is overflow znamená, že fronta je plná
Pokud (R> = N)
Fronta je plná
Výstup
Krok 2: Pokud není fronta přetečena, zvyšte smyčku
R = R + 1
Krok 3: Vložte prvek do fronty
Fronta (R) = položka
Krok 4: Nastavení ukazatele „F“ (přední)
Pokud (F = 0)
F = 1
Výstup
Pro operaci odstranění ve frontě
Odstranění procedury (fronta, F, R, položka)
(Odstranit „položku“ z „zásobníku“, „F“ je ukazatel front-end a 'R' je vzácný koncový ukazatel.
Krok 1: Check Queue is underflow znamená prázdný
Pokud (R <= 0)
Fronta je prázdná
Výstup
Krok 2: Odstranění prvku z fronty
Item = queue (F) Krok 3: Zvýšení hodnoty F
F = F + 1
Krok 4: Kontrola prázdné fronty
Pokud (F> R)
Pak F = R = 0
Výstup

8.Napište algoritmus, abyste našli minimální hloubku binárního stromu.

Odpověď: Nechť „uzel“ je ukazatelem na kořenový uzel podstromu.
Krok 1: Pokud je uzel roven Null, vraťte 0
Krok 2: Pokud je uzlem listový uzel, vraťte 1.
Krok 3: Rekurzivně najděte minimální hloubku levého a pravého dílčího stromu, nechte ji ponechat min. Hloubku a pravou min. Hloubku.
Krok 4: Abychom získali minimální výšku stromu zakořeněné v uzlu, vezmeme minimální hloubku vlevo min a pravou min hloubku a 1 pro kořenový uzel.
Program:
Postup minDepth (uzel)
Krok 1: Pokud (root = null)
Návrat 0
Krok 2: if (root -> Left = Null a root -> right = Null)
Návrat 1
Krok 3: pokud (root -> left není null)
Návrat minDepth (root -> vpravo) + 1;
Krok 4: Pokud (root -> Right není null)
Návrat minDepth (root -> vlevo) + 1;
Krok 5: návrat min (minDepth (root -> vlevo), minDepth (root -> right)) + 1

Doporučené články

Toto byl komplexní průvodce otázkami a odpověďmi ohledně algoritmických rozhovorů, aby uchazeč mohl tyto otázky týkající se rozhovorů s algoritmy snadno zakročit. Další informace naleznete také v následujících článcích -

  1. Otázky a odpovědi týkající se strojového učení
  2. Užitečný průvodce otázkami rozhovoru s velkými daty
  3. Důležité otázky k rozhovoru s Elasticsearch
  4. Užitečné otázky a odpovědi na rozhovor s Apache PIG

Kategorie: