100+ Coding Interview Questions for Programmers

Rozwiąż te często zadawane problemy z kodowaniem, aby dobrze wypaść na następnych rozmowach o pracę z programistami.

Sep 20, 2019 – 13 min read

.

image_credit-. Coderust 3.0: Faster Coding Interview Preparation with Interactive Challenges & Wizualizacje

Wywiady koderskie to tak ważna rzecz w życiu programisty, że po prostu nie może się od tego oderwać. Jest to pierwsza przeszkoda, którą muszą przejść, aby uzyskać pracę programisty oprogramowania, które chcą przez cały czas ich szkoły i dni college.

Aby pogorszyć sprawę, można znaleźć, że tak wielu ludzi w Internecie, mówiąc, że wywiad kodowania jest wadliwy, proces zatrudniania programistów ssie i tak dalej, ale nie trzeba zwracać uwagę na nich, nie przynajmniej na początku swojej kariery.

Mogą mieć rację, ale są one wewnątrz pociągu, który próbuje dostać się do. Bez względu na to, jak bardzo krytykują wywiady kodowania i programistów proces zatrudniania, wielu z nich przeszło tę samą drogę do miejsca, w którym są.

Wszyscy wiemy, że System Wywiadów Kodowania nie jest doskonały i wielu próbuje go zmienić, ale dopóki nie zostanie zmieniony, trzeba przestrzegać jego zasad, aby dostać się do systemu. To jest coś dla doświadczonych programistów, aby poradzić sobie z tym, jako młodszy programista, twoim priorytetem powinno być, aby wyczyścić wywiad kodowania i dostać pracę, którą chcesz.

Jako autor bloga Java i publikacji Medium, otrzymuję wiele zapytań związanych z problemami kodowania i jak sobie z nimi radzić i dlatego wciąż piszę artykuły takie jak ten, które pomogły wielu programistom bezpośrednio i pośrednio w ich karierze.

W tym artykule, mam zamiar podzielić się z wami 100 najlepszych problemów wywiadu kodowania z rozmów kwalifikacyjnych programowania, które każdy programista powinien wiedzieć.

Teraz, że mam oczyszczone zamieszanie, że Wywiad kodowania jest ważne i nie należy rozpraszać, przejdźmy do prawdziwej pracy. Wielkie pytanie jest to, co przygotować się do wywiadów Coding?

Najważniejszą rzeczą do przygotowania jest Data Structure oparte problemy kodowania, takie jak problemy kodowania oparte na tablicy, problemy ciąg, połączone problemy listy, problemy drzewa binarnego, itp.

Oprócz pytań opartych na strukturze danych, większość rozmów kwalifikacyjnych dotyczących programowania również zadaje pytania dotyczące algorytmów, projektowania, manipulacji bitowych i ogólnych pytań opartych na logice, które opiszę w tej sekcji.

Ważne jest, abyś ćwiczył te koncepcje, ponieważ czasami stają się one trudne do rozwiązania w rzeczywistym wywiadzie. Po przećwiczeniu ich wcześniej nie tylko sprawi, że będziesz z nimi zaznajomiony, ale także da ci więcej pewności siebie w wyjaśnianiu rozwiązania ankieterowi.

Jednym z głównych problemów z problemami z kodowaniem jest to, że istnieją setki i tysiące problemów z kodowaniem na rozmowach kwalifikacyjnych, istnieją nawet strony takie jak LeetCode, HackerRank, Codewars, Topcoder, freeCodeCamp, HackerEarth, które szkolą programistów do wywiadów kodowania z mnóstwem trudnych pytań, które czasami po prostu przytłaczają początkującego szukającego pracy.

Wierzę w prostotę i 10% wysiłku, które dają 90% rezultatów i dlatego zebrałem 100 najlepszych problemów kodowania, które nie są zbyt trudne, a także często zadawane na prawdziwych rozmowach kwalifikacyjnych.

Rozwiązanie tych problemów nie tylko daje pewność siebie, ale także pomaga rozpoznać niektóre z najczęstszych wzorców algorytmicznych, które również pomogą Ci rozwiązać niektóre niewidziane problemy na prawdziwych wywiadach.

Źródła dla wywiadów

Wybór dobrych zasobów jest bardzo ważny dla sukcesu w twoich wywiadach kodowania. Jeśli wybrałeś zły zasób to więcej niż pieniądze, stracisz cenny czas, którego potrzebujesz na przygotowanie, dlatego poświęć trochę czasu na badanie dobrego zasobu.

Jeśli potrzebujesz zaleceń, poniżej znajdują się niektóre z moich wypróbowanych i przetestowanych zasobów do nauki Struktury danych i algorytmów dogłębnie dla wywiadów kodowania:

  • Struktury danych i algorytmów: Deep Dive Using Java dla programistów Java. Dowiedz się o tablicach, listach połączonych, drzewach, tablicach, stosach, kolejkach, stertach, algorytmach sortowania i wyszukiwania
  • Algorytmy i struktury danych w Pythonie dla tych, którzy kochają Pythona
    Przewodnik po wdrażaniu od podstaw najbardziej aktualnych algorytmów: tablic, list połączonych, algorytmów grafowych i sortowania
  • JavaScript Algorithms and Data Structures Masterclass by Colt_Steele dla programistów JavaScript. Brakujący Bootcamp Informatyki i Wywiadu Kodowania. Learn everything you need to ace difficult coding interviews.
  • Mastering Data Structures & Algorithms using C and C++ dla tych, którzy są dobrzy w C/C++
  • Data Structures in Java: An Interview Refresher przez The Educative Team, aby odświeżyć ważne Struktury danych i algorytmów pojęć w Javie. Ten kurs zawiera szczegółowy przegląd wszystkich popularnych struktur danych i dostarcza szczegółów na poziomie implementacji w Javie, aby umożliwić czytelnikom dobre wyposażenie.
  • Grokking the Coding Interview: Patterns for Coding Questions by Fahim ul Haq and The Educative Team
    To jest jak meta kurs dla wywiadów kodowania, które nie nauczy cię, jak rozwiązać problem kodowania, ale zamiast tego, nauczyć cię, jak rozwiązać szczególny rodzaj problemów kodowania za pomocą wzorów. Opanuj te 15 podstawowych wzorców do pytań wywiadu, a będziesz w stanie poradzić sobie z wszystkim, co napotkasz na wywiadzie

A jeśli wolisz książki, nie ma lepszego niż Cracking The Coding Interview, przez Gayle Laakmann McDowell, który przedstawia 189 + Pytania programistyczne i rozwiązanie. Dobra książka do przygotowania się do rozmów kwalifikacyjnych z programowania w krótkim czasie. Btw, będę również zarobić trochę pieniędzy, jeśli kupisz którykolwiek z tych zasobów wymienionych tutaj.

Some Tips for Coding Interviews

  1. Nie ma lepszego sposobu, aby zrobić dobrze w wywiadach kodowania niż praktykowanie jak najwięcej problemów kodowania, jak to możliwe. To nie tylko szkolić swój umysł, aby rozpoznać wzorce algorytmiczne w problemach, ale także daje bardzo potrzebne zaufanie do rozwiązania problemu, który nigdy nie widział przed.
  2. Moje drugie wskazówki są dowiedzieć się o jak wielu danych struktury i algorytmy, jak to możliwe. Jest to rozszerzenie poprzedniej wskazówki, ale obejmuje również czytanie, a nie tylko praktykowanie. Na przykład, jeśli wiesz o tablicy haszującej, możesz również łatwo rozwiązać wiele problemów związanych z tablicami i licznikami. To samo odnosi się do drzewa i wykresu.
  3. Wybór odpowiedniej struktury danych jest bardzo ważną częścią rozwoju oprogramowania i wywiadu kodowania i jeśli i dopóki nie znasz ich, nie będziesz w stanie wybrać.
  4. Czas siebie – kandydaci, którzy rozwiązują problemy wywiadu w ramach limitu czasu i szybko są bardziej prawdopodobne, aby zrobić dobrze w wywiadzie, więc należy również czas siebie.
  5. Pomyśl o przypadkach brzegowych i uruchomić swój kod przez nich. Niektóre dobre przypadki brzegowe mogą być puste wejście, niektóre dziwne dane wejściowe lub niektóre naprawdę duże dane wejściowe, aby przetestować warunki brzegowe i limity.
  6. Po rozwiązaniu problemu, spróbuj wyjaśnić go do przyjaciela lub kolegów, jak jest również zainteresowany w kodowaniu problemów. To powie ci, czy naprawdę zrozumiałeś problem, czy nie. Jeśli możesz łatwo wyjaśnić oznacza to, że zrozumiałeś. Ponadto, dyskusja sprawia, że twój umysł działa i można wymyślić alternatywne rozwiązanie i w stanie znaleźć pewne wady w istniejących algorytmów.
  7. Inna przydatna wskazówka do Excela Wywiady kodowania jest pojawienie się w wywiadzie kodowania i wiele z nich. Znajdziesz się coraz lepiej po każdym wywiadzie i to również pomoże Ci uzyskać wiele ofert, które dalej pozwala lepiej negocjować i uzyskać te dodatkowe 30K do 50K, które zazwyczaj zostawić na stole, jeśli masz tylko jedną ofertę w ręku.
  8. Btw, Jeśli jesteś gotowy do Coding Interview to można również podjąć TripleByte’s quiz i przejść bezpośrednio do końcowej rundy wywiadów z najlepszych firm technologicznych, takich jak Coursera, Adobe Acrobat, Dropbox, Grammarly, Uber, Quora, Evernote, Twitch i wiele innych. Nie wiedziałem wcześniej o Triplebyte, ale zapewniają one wspaniałą usługę dla osób poszukujących pracy. Wielkie dzięki dla nich.

Top 100 Coding Problems from Programming Job interviews

Nie marnując więcej twojego czasu, oto moja lista 100 często zadawanych problemów z kodowaniem z programowaniem rozmów kwalifikacyjnych. Aby uzyskać większość z tej listy, sugeruję faktycznie rozwiązać problem.

Zrób to sam, bez względu na to czy utknąłeś, ponieważ to jedyny sposób aby się nauczyć. Po rozwiązaniu kilku problemów nabierzesz pewności siebie. Proponuję również spojrzeć na rozwiązanie, gdy utknąłeś lub po rozwiązaniu problemu, w ten sposób nauczysz się porównywać różne rozwiązania i jak podejść do problemu pod innym kątem.

  1. Jak jest zaimplementowany algorytm sortowania bąbelkowego? (rozwiązanie)
  2. Jak jest zaimplementowany algorytm sortowania scalającego? (rozwiązanie)
  3. Jak policzyć wystąpienie danego znaku w ciągu znaków? (rozwiązanie)
  4. Jak wypisać pierwszy nie powtarzający się znak z ciągu znaków? (rozwiązanie)
  5. Jak przekonwertować dany String na int jak w atoi()? (rozwiązanie)
  6. Jak zaimplementować algorytm sortowania kubełkowego? (rozwiązanie)
  7. Jak zaimplementować algorytm sortowania zliczającego? (rozwiązanie)
  8. Jak usunąć duplikaty z tablicy w miejscu? (rozwiązanie)
  9. Jak odwrócić tablicę w miejscu w Javie? (rozwiązanie)
  10. Jak usunąć duplikaty z tablicy bez użycia jakiejkolwiek biblioteki? (rozwiązanie)
  11. Jak jest zaimplementowany algorytm sortowania radix? (rozwiązanie)
  12. Jak zamienić dwie liczby bez użycia trzeciej zmiennej? (rozwiązanie)
  13. Jak sprawdzić, czy dwa prostokąty nachodzą na siebie? (rozwiązanie)
  14. Jak zaprojektować automat sprzedający? (rozwiązanie)
  15. Jak znaleźć brakującą liczbę w danej tablicy liczb całkowitych od 1 do 100? (rozwiązanie)
  16. Jak znaleźć duplikat liczby na danej tablicy liczb całkowitych? (rozwiązanie)
  17. Jak znaleźć duplikaty liczb w tablicy, jeśli zawiera ona wiele duplikatów? (rozwiązanie)
  18. Różnica między stabilnym a niestabilnym algorytmem sortowania? (odpowiedź)
  19. Jak jest zaimplementowany iteracyjny algorytm quicksort? (rozwiązanie)
  20. Jak znaleźć największą i najmniejszą liczbę w nieposortowanej tablicy liczb całkowitych? (rozwiązanie)
  21. Jak odwrócić listę połączoną w miejscu? (rozwiązanie)
  22. Jak dodać element na środku listy połączonej? (rozwiązanie)
  23. Jak posortować listę połączoną w Javie? (rozwiązanie)
  24. Jak znaleźć wszystkie pary tablicy liczb całkowitych, których suma jest równa danej liczbie? (rozwiązanie)
  25. Jak zaimplementować algorytm sortowania przez wstawianie? (rozwiązanie)
  26. W jaki sposób usuwane są duplikaty z danej tablicy w Javie? (rozwiązanie)
  27. Jak usunąć duplikat znaku z Stringa? (rozwiązanie)
  28. Jak znaleźć maksymalnie występujący znak w danym Stringu? (rozwiązanie)
  29. Jak posortować tablicę liczb całkowitych w miejscu za pomocą algorytmu quicksort? (rozwiązanie)
  30. Jak odwrócić dany ciąg znaków w miejscu? (rozwiązanie)
  31. Jak wypisać zduplikowane znaki z ciągu znaków? (rozwiązanie)
  32. Jak sprawdzić czy dwa ciągi są anagramami siebie nawzajem? (rozwiązanie)
  33. Jak znaleźć wszystkie permutacje ciągu znaków? (rozwiązanie)
  34. Jak można odwrócić dany ciąg używając rekurencji? (rozwiązanie)
  35. Jak sprawdzić, czy dany ciąg jest palindromem? (rozwiązanie)
  36. Jak znaleźć długość najdłuższego podłańcucha bez powtarzających się znaków? (rozwiązanie)
  37. Dany ciąg str, Jak znaleźć najdłuższy palindromiczny podłańcuch w str? (rozwiązanie)
  38. Jak sprawdzić czy ciąg zawiera tylko cyfry? (rozwiązanie)
  39. Jak usunąć N-ty węzeł z końca listy połączonej? (rozwiązanie)
  40. Jak scalić dwie posortowane listy połączone? (rozwiązanie)
  41. Jak przekonwertować posortowaną listę na drzewo wyszukiwania binarnego? (rozwiązanie)
  42. Jak znaleźć duplikaty znaków w danym ciągu znaków? (rozwiązanie)
  43. Jak policzyć ilość samogłosek i spółgłosek w danym ciągu znaków? (rozwiązanie)
  44. Jak odwrócić wyrazy w danym zdaniu bez użycia żadnej metody bibliotecznej? (rozwiązanie)
  45. Jak sprawdzić, czy dwa ciągi są rotacją siebie nawzajem? (rozwiązanie)
  46. Jak przekonwertować tablicę bajtów na String? (rozwiązanie)
  47. Jak usunąć dany znak z Stringa? (rozwiązanie)
  48. Jak znaleźć środkowy element listy singly linked w jednym przebiegu? (rozwiązanie)
  49. Jak sprawdzić, czy dana lista połączona zawiera cykl? Jak znaleźć węzeł początkowy cyklu? (rozwiązanie)
  50. Jak odwrócić listę połączoną? (rozwiązanie)
  51. Jak odwrócić listę pojedynczo połączoną bez rekurencji? (rozwiązanie)
  52. Jak są usuwane zduplikowane węzły w nieposortowanej liście połączonej? (rozwiązanie)
  53. Jak znaleźć długość listy pojedynczo połączonej? (rozwiązanie)
  54. Jak znaleźć trzeci węzeł od końca na liście pojedynczo połączonej? (rozwiązanie)
  55. Jak znaleźć sumę dwóch list połączonych przy użyciu Stack? (rozwiązanie)
  56. Jaka jest różnica między tablicą a listą połączoną? (odpowiedź)
  57. Jak usunąć duplikaty z posortowanej listy połączonej? (rozwiązanie)
  58. Jak znaleźć węzeł, w którym zaczyna się przecięcie dwóch list pojedynczo połączonych. (rozwiązanie)
  59. Biorąc pod uwagę listę połączoną i wartość x, podziel ją tak, aby wszystkie węzły mniejsze od x występowały przed węzłami większymi lub równymi x. (rozwiązanie)
  60. Jak sprawdzić, czy dana lista połączona jest palindromem? (rozwiązanie)
  61. Jak usunąć wszystkie elementy z połączonej listy liczb całkowitych, które pasują do podanej wartości? (rozwiązanie)
  62. Jak jest zaimplementowane drzewo wyszukiwania binarnego? (rozwiązanie)
  63. Jak wykonać preorder traversal w danym drzewie binarnym? (rozwiązanie)
  64. Jak wykonać trawersowanie danego drzewa binarnego w preorderze bez rekurencji? (rozwiązanie)
  65. Jak wykonać inorder traversal w danym drzewie binarnym? (rozwiązanie)
  66. Jak wypisać wszystkie węzły danego drzewa binarnego używając inorder traversal bez rekurencji? (rozwiązanie)
  67. Jak zaimplementować algorytm postorder traversal? (rozwiązanie)
  68. Jak przemierzyć drzewo binarne w postorder traversal bez rekurencji? (rozwiązanie)
  69. W jaki sposób są drukowane wszystkie liście drzewa wyszukiwania binarnego? (rozwiązanie)
  70. Jak policzyć liczbę węzłów liści w danym drzewie binarnym? (rozwiązanie)
  71. Jak wykonać wyszukiwanie binarne w danej tablicy? (rozwiązanie)
  72. Jak zamienić dwie liczby bez użycia trzeciej zmiennej? (rozwiązanie)
  73. Jak sprawdzić czy dwa prostokąty nachodzą na siebie? (rozwiązanie)
  74. Jak zaprojektować automat sprzedający? (rozwiązanie)
  75. Jak zaimplementować LRU Cache w twoim ulubionym języku programowania? (rozwiązanie)
  76. Jak sprawdzić, czy dana liczba jest palindromem? (rozwiązanie)
  77. Jak sprawdzić, czy dana liczba jest liczbą Armstronga? (rozwiązanie)
  78. Jak znaleźć wszystkie czynniki pierwsze danej liczby? (rozwiązanie)
  79. Jak sprawdzić czy dana liczba jest dodatnia czy ujemna w Javie? (rozwiązanie)
  80. Jak znaleźć największy czynnik pierwszy danej liczby całkowitej? (rozwiązanie)
  81. Jak wypisać wszystkie liczby pierwsze do danej liczby? (rozwiązanie)
  82. Jak wydrukować trójkąt Floyda? (rozwiązanie)
  83. Jak wydrukować trójkąt Pascala? (rozwiązanie)
  84. Jak obliczyć pierwiastek kwadratowy z danej liczby? (rozwiązanie)
  85. Jak sprawdzić czy dana liczba jest liczbą pierwszą? (rozwiązanie)
  86. Jak dodać dwie liczby bez użycia operatora plus w Javie? (rozwiązanie)
  87. Jak sprawdzić czy dana liczba jest parzysta/nieparzysta bez użycia operatora Arithmetic? (rozwiązanie)
  88. Jak wydrukować daną strukturę Piramida? (rozwiązanie)
  89. Jak znaleźć najwyższy powtarzający się świat z danego pliku w Javie? (rozwiązanie)
  90. Jak odwrócić daną liczbę całkowitą w Javie? (rozwiązanie)
  91. Jak przekonwertować liczbę dziesiętną na binarną w Javie? (rozwiązanie)
  92. Jak sprawdzić czy dany rok jest rokiem przestępnym w Javie? (rozwiązanie)
  93. Czy można zaimplementować Algorytm wyszukiwania binarnego bez rekurencji? (rozwiązanie)
  94. Różnica między stabilnym a niestabilnym algorytmem sortowania? (odpowiedź)
  95. Co to jest Depth First Search Algorithm dla drzewa binarnego? (rozwiązanie)
  96. Jak jest zaimplementowany iteracyjny algorytm quicksort? (rozwiązanie)
  97. Jak zaimplementować algorytm sortowania przez wstawianie? (rozwiązanie)
  98. Jak jest zaimplementowany algorytm sortowania scalającego? (rozwiązanie)
  99. Jaka jest różnica między algorytmami sortowania porównawczego i nieporównawczego? (odpowiedź)
  100. Jak zaimplementować algorytmy Sieve of Eratosthenes dla liczb pierwszych? (rozwiązanie)

Te wiele pytań powinno wystarczyć, ale jeśli potrzebujesz więcej takich pytań kodowania można wziąć pomoc z książek takich jak Cracking The Code Interview, przez Gayle Laakmann McDowell, który prezentuje 189 + Pytania programistyczne i rozwiązanie. Dobra książka, aby przygotować się do rozmów kwalifikacyjnych w sprawie programowania w krótkim czasie.

Now You’re Ready for the Coding Interview

To są jedne z najczęstszych pytań poza strukturą danych i algorytmów, które pomogą Ci zrobić naprawdę dobrze w wywiadzie.

Podzieliłem się również wieloma z tych pytań na moim blogu, więc jeśli jesteś naprawdę zainteresowany, zawsze możesz tam pójść i poszukać ich.

Te wspólne pytania dotyczące kodowania, struktury danych i algorytmów są tymi, które musisz znać, aby z powodzeniem przeprowadzić rozmowę kwalifikacyjną z każdą firmą, dużą lub małą, dla każdego poziomu pracy programistycznej.

Jeśli szukasz pracy związanej z programowaniem lub tworzeniem oprogramowania w 2019 roku, możesz rozpocząć swoje przygotowania od tej listy pytań dotyczących kodowania, a jeśli jesteś gotowy na Interview, możesz również wziąć quiz TripleByte i przejść bezpośrednio do ostatecznej rundy wywiadów z najlepszymi firmami technologicznymi, takimi jak Coursera, Adobe, Dropbox, Grammarly i wiele innych.

Ta lista zapewnia dobre tematy do przygotowania, a także pomaga ocenić twoje przygotowanie, aby dowiedzieć się, jakie są twoje obszary siły i słabości.

Dobra znajomość struktury danych i algorytmów jest ważna dla sukcesu w wywiadach kodowania i to właśnie tam powinieneś skupić większość swojej uwagi.

Dalsza nauka
Data Structures and Algorithms: Deep Dive Using Java
10 Books to Prepare Technical Programming/Coding Job Interviews
10 Algorithm Books Every Programmer Should Read
Top 5 Data Structure and Algorithm Books for Java Developers
From 0 to 1: Data Structures & Algorithms in Java
Data Structure and Algorithms Analysis – Job Interview
20+ String based coding problems from interviews
20+ linked list problems from interviews
20+ basic algorithms based problems from interviews

Closing Notes

Dzięki, dotarłeś do końca artykułu … Powodzenia w rozmowie o programowaniu! To na pewno nie będzie łatwe, ale po tym wyszukiwaniu i sortowaniu pytań algorytmów, jesteś o krok bliżej niż inni. Przy okazji, im więcej pytań rozwiążesz w praktyce, tym lepsze będzie twoje przygotowanie.

Więc, jeśli myślisz, że 100 problemów z kodowaniem to za mało i potrzebujesz więcej, to sprawdź te dodatkowe 50 pytań programistycznych do wywiadów telefonicznych oraz te książki i kursy dla dokładniejszego przygotowania.

Wszystkiego najlepszego dla twojego wywiadu z kodowaniem.

Inne artykuły, które mogą ci się spodobać:

Dodaj komentarz