Wprowadzenie do wywiadu z algorytmem Pytania i odpowiedzi

Przygotowanie do rozmowy kwalifikacyjnej w Algorytmie. Jestem pewien, że chcesz poznać najczęstsze pytania i odpowiedzi na wywiad z algorytmem z roku 2019, które pomogą ci z łatwością przełamać wywiad z algorytmem. Poniżej znajduje się lista najczęściej zadawanych pytań i odpowiedzi podczas wywiadu algorytmicznego.

Poniżej znajduje się lista pytań i odpowiedzi na wywiad z algorytmem z 2019 r., Które można zadać podczas wywiadu w celu uzyskania świeżości i doświadczenia.

1. Napisz algorytm, aby odwrócić ciąg. Na przykład, jeśli mój ciąg to „vahbunA”, to moim wynikiem będzie „Anubhav”.

Odpowiedź:
Krok 1: Rozpocznij
Krok 2: Weź dwie zmienne I i j.
Krok 3: j jest ustawiany na ostatnim znaku (technicznie możemy to zrobić według długości (łańcucha) -1)
Krok 4: Ustawiam się na pierwszym znaku (możemy to zrobić za pomocą ciągu (0))
Krok 5: Ciąg (i) jest zamieniany Ciąg (j) Krok 6: Przyrost I o 1
Krok 7: Zwiększ J o 1
Krok 8: Jeśli „I”> „j” to przejdź do kroku 3
Krok 9: Zatrzymaj się

2. Napisz algorytm, aby wstawić węzeł do listy połączonej, zakładając, że lista połączona jest już posortowana.

Odpowiedź:
Przypadek 1: Jeśli lista połączona jest pusta, ustaw węzeł jako nagłówek i zwróć go.
Kod: New_node-> Next = głowa;
head = New_node
Przypadek 2: Wstaw węzeł na środku
Kod: While (P! = Insert_position)
(
P = p-> Dalej;
)
Store_next = P-> Dalej;
P-> Dalej = New_Node;
New_Node-> Next = Store_next;
Przypadek 3: Wstaw węzeł na końcu
Kod: While (P-> next! = Null)
(
P = P-> Dalej;
)
P-> Dalej = New_Node;
New_Node-> Next = null;

3. Napisz algorytm do sortowania bąbelkowego.

Odpowiedź: Zamierzamy zaimplementować algorytm sortowania bąbelkowego w języku C.
Krok 1: Powtórz krok 2 i krok 3 dla I = 1 do 10
Krok 2: Ustaw j = 1
Krok 3: Powtórz, gdy j <= n (gdzie n jest liczbą elementów w tablicy)
(Jeśli a (i) <a (j) Następnie zamień a (i) i a (j) (Koniec if))
Ustaw j = j + 1
(Koniec pętli wewnętrznej) (Koniec pętli zewnętrznej kroku 1) Krok 4: Wyjdź

4. Napisz algorytm dla Heapsort.

Odpowiedź:
Krok 1: Ponieważ drzewo spełnia właściwość Max-Heap, największy element jest przechowywany w węźle głównym.
Krok 2: Usuń element główny i umieść na końcu tablicy (n-ta pozycja) umieść ostatni element drzewa (sterty) w wolnym miejscu.
Krok 3: Zmniejsz rozmiar sterty o 1 i ponownie ułóż element główny, abyśmy mieli najwyższy element u podstawy.
Krok 4: Proces powtarza się, aż wszystkie elementy listy zostaną posortowane.

5. Napisz algorytm do wyszukiwania Fibonacciego.

Odpowiedź:
Krok 1: A jest sorted_int_array;
Krok 2: weź jedną zmienną c
Krok 3: Fib2 = 1, Fib1 = 1 i fib = 2
Krok 4: Podczas gdy fib <n do (gdzie n jest liczbą elementów na liście)
Krok 5: Przypisz zmienną
Fib2 = Fib1
Fib1 = Fib
Fib = Fib1 + Fib2
Zakończ na chwilę
Krok 6: Przypisz wartość do zmiennej tymczasowej I = 0, przesunięcie = 0;
Krok 7: Podczas gdy Fib> 1 tak
I = min (offset + Fib2, n)
Jeśli c <A (i), to
Fib = Fib2
Fib1 = Fib1 - Fib2
Fib2 = Fib - Fib1
W przeciwnym razie, jeśli c> A (i)
Fib = Fib1;
Fib1 = Fib2;
Fib2 = Fib - Fib1;
Offset = I;
Jeszcze
Zwróć prawdę
Zakończ jeśli
Zakończ na chwilę
Zwróć false

6. Napisz algorytm operacji push i pop na stosie.

Odpowiedź: Dla operacji Push
Procedura Dodaj (element, stos, N, góra)
(Wstaw „Przedmiot” do „stosu” o maksymalnym rozmiarze „n”, górna to liczba elementów aktualnie w „Stosie”)
Krok 1: Sprawdź, czy stos jest przepełniony?
Jeśli (Top> = N)
Stos jest przepełniony
Wyjście
Krok 2: Jeśli stos się nie przepełni, zwiększ pętlę
Góra = góra + 1
Krok 3: Wstaw element
Stos (góra) = przedmiot
Krok 4: Wyjdź
Do operacji POP
Krok 1: Sprawdź, czy stos jest niedopełniony, czyli pusty
Jeśli (Top <= 0)
Stos jest pusty
Wyjście
Krok 2: Jeśli stos nie jest niedopełniony, usuń element
Pozycja = stos (góra) Krok 3: zmniejszanie najwyższej wartości
Góra = góra - 1
Krok 4: Wyjdź

7. Napisz algorytm operacji wstawiania i usuwania w kolejce.

Odpowiedź: Do operacji wstawiania
Procedura dodawania (kolejka, F, R, N, pozycja)
(Spowoduje to wstawienie „elementu” do „kolejki” po „R” (rzadko), gdzie „n” jest rozmiarem tablicy.)
Krok 1: Sprawdź, czy kolejka jest przepełniona, oznacza, że ​​kolejka jest pełna
Jeśli (R> = N)
Kolejka jest pełna
Wyjście
Krok 2: Jeśli kolejka nie jest przepełniona, zwiększ wartość pętli
R = R + 1
Krok 3: Wstaw element do kolejki
Kolejka (R) = pozycja
Krok 4: Ustawienie wskaźnika „F” (przód)
Jeśli (F = 0)
F = 1
Wyjście
Operacja usuwania w kolejce
Procedura usuwania (kolejka, F, R, pozycja)
(Usuń „element” z „stosu”, „F” to wskaźnik interfejsu użytkownika, a „R” to wskaźnik rzadkiego końca.
Krok 1: Sprawdź, czy kolejka jest niedopełniona, czyli pusta
Jeśli (R <= 0)
Kolejka jest pusta
Wyjście
Krok 2: Usuwanie elementu z kolejki
Pozycja = kolejka (F) Krok 3: Zwiększanie wartości F
F = F + 1
Krok 4: Sprawdzanie pustej kolejki
Jeśli (F> R)
Następnie F = R = 0
Wyjście

8. Napisz algorytm, aby znaleźć minimalną głębokość drzewa binarnego.

Odpowiedź: Niech „węzeł” będzie wskaźnikiem do węzła głównego poddrzewa.
Krok 1: Jeśli węzeł ma wartość Null, zwróć 0
Krok 2: Jeśli węzeł jest węzłem liścia, zwróć 1.
Krok 3: Rekurencyjnie znajdź minimalną głębokość lewego i prawego poddrzewa, niech będzie to odpowiednio Min. Głębokość i prawa min. Głębokość.
Krok 4: Aby uzyskać minimalną wysokość drzewa zakorzenionego w węźle, weźmiemy minimalną lewą minimalną głębokość i prawą minimalną głębokość oraz 1 dla węzła głównego.
Program:
Procedura minDepth (węzeł)
Krok 1: Jeśli (root = null)
Zwróć 0
Krok 2: if (root -> Left = Null i root -> right = Null)
Zwrot 1
Krok 3: Jeśli (root -> left nie ma wartości null)
Zwraca minDepth (root -> prawo) + 1;
Krok 4: Jeśli (root -> Prawo nie jest puste)
Zwraca minDepth (root -> left) + 1;
Krok 5: zwróć min (minDepth (root -> left), minDepth (root -> right)) + 1

Polecane artykuły

Jest to obszerny przewodnik po pytaniach i odpowiedziach do wywiadu z algorytmem, dzięki czemu kandydat może łatwo stłumić pytania z wywiadu z algorytmem. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Wywiad maszynowy Pytania i odpowiedzi
  2. Przydatny przewodnik po pytaniach do wywiadu Big Data
  3. Ważne pytania dotyczące wywiadu Elasticsearch
  4. Przydatne Apache PIG Wywiad Pytania i odpowiedzi