Lös dessa ofta ställda kodningsproblem för att klara dig bra på nästa jobbintervju för programmerare.
.
Kodningsintervjuer är en så viktig sak i en programmerares liv att han inte kan komma undan med det. Det är det första hindret de måste passera för att få det mjukvaruutvecklarjobb de önskar sig under hela sin skol- och universitetstid.
För att göra saken värre kommer du att hitta så många människor på internet som berättar att kodningsintervjuer är bristfälliga, att rekryteringsprocessen för programmerare suger och så vidare, men du behöver inte uppmärksamma dem, åtminstone inte i början av din karriär.
De kanske har rätt, men de sitter inne i tåget som du försöker ta dig ombord på. Oavsett hur mycket de kritiserar kodningsintervjuer och programmerares anställningsprocess har många av dem gått igenom samma väg till där de är.
Vi vet alla att systemet för kodningsintervjuer inte är perfekt och många försöker ändra det, men tills det ändras måste du följa dess regler för att komma in i systemet. Detta är något för erfarna utvecklare att hantera, som juniorutvecklare bör din prioritet vara att klara kodningsintervjun och få det jobb du vill ha.
Som författare till en Java-blogg och en Medium-publikation får jag många förfrågningar som rör kodningsproblem och hur man hanterar dem och det är därför jag fortsätter att skriva artiklar som den här, som har hjälpt många programmerare direkt och in-direkt i deras karriär.
I den här artikeln kommer jag att dela med dig topp 100 kodningsintervjuproblem från programmeringsjobbintervjuer som varje programmerare bör känna till.
Nu har jag rensat förvirringen om att kodningsintervjun är viktig och att du inte bör distrahera dig, låt oss komma in i det verkliga arbetet. Den stora frågan är vad man ska förbereda för kodningsintervjuer?
Ja, det viktigaste att förbereda är datastrukturbaserade kodningsproblem som arraybaserade kodningsproblem, strängproblem, problem med länkade listor, problem med binära träd osv.
Avse de datastrukturbaserade frågorna ställer de flesta jobbintervjuer inom programmering också frågor om algoritmer, design, bitmanipulation och allmänna logikbaserade frågor, som jag kommer att beskriva i det här avsnittet.
Det är viktigt att du övar på dessa begrepp, eftersom de ibland blir knepiga att lösa i den faktiska intervjun. Att ha övat dem tidigare gör dig inte bara bekant med dem utan ger dig också mer självförtroende när du ska förklara lösningen för intervjuaren.
Ett av de största problemen med kodningsproblem är att det finns hundratals och tusentals kodningsproblem på intervjuer, det finns till och med sajter som LeetCode, HackerRank, Codewars, Topcoder, freeCodeCamp, HackerEarth som utbildar programmerare för kodningsintervjuer med mängder av svåra frågor, som ibland bara överväldigar en nybörjare som letar efter ett jobb.
Jag tror på enkelhet och 10 % av ansträngningen som ger 90 % av resultatet och det är därför jag har samlat de 100 bästa kodningsproblemen som inte är för svåra och som också ofta frågas på riktiga intervjuer.
Lösning av dessa problem ger dig inte bara självförtroende utan hjälper dig också att känna igen några av de vanligaste algoritmiska mönstren som också kommer att hjälpa dig att lösa några osynliga problem på riktiga intervjuer.
Resurser för kodningsintervjuer
Väljning av bra resurser är mycket viktigt för att lyckas i dina kodningsintervjuer. Om du väljer fel resurser kommer du att förlora mer än pengar, du kommer att förlora värdefull tid som du behöver för att förbereda dig, och därför måste du ägna lite tid åt att leta efter bra resurser.
Om du behöver rekommendationer är följande några av mina beprövade och testade resurser för att lära dig datastrukturer och algoritmer på djupet för kodningsintervjuer:
- Data Structures and Algorithms: Deep Dive Using Java för Javautvecklare. Lär dig om matriser, länkade listor, träd, hashtabeller, staplar, köer, högar, sorteringsalgoritmer och sökalgoritmer
- Algoritmer och datastrukturer i Python för dem som älskar Python
En guide för att implementera de senaste algoritmerna från grunden: matriser, länkade listor, grafalgoritmer och sortering
- JavaScript Algorithms and Data Structures Masterclass av Colt_Steele för JavaScript-programmerare. Det saknade bootcampet för datavetenskap och kodningsintervjuer. Lär dig allt du behöver för att klara svåra kodningsintervjuer.
- Mastering Data Structures & Algoritmer med hjälp av C och C++ för dem som är bra på C/C++
- Data Structures in Java: En intervju Refresher av The Educative Team för att uppdatera viktiga begrepp om datastrukturer och algoritmer i Java. Denna kurs innehåller en detaljerad genomgång av alla vanliga datastrukturer och ger detaljer på implementeringsnivå i Java så att läsarna kan bli väl rustade.
- Grokking the Coding Interview: Patterns for Coding Questions by Fahim ul Haq and The Educative Team
Detta är som en metakurs för kodningsintervjuer, som inte lär dig hur du löser ett kodningsproblem utan istället lär dig hur du löser en viss typ av kodningsproblem med hjälp av mönster. Om du behärskar dessa 15 underliggande mönster för intervjufrågor kommer du att kunna hantera allt du möter på intervjun
Och om du föredrar böcker finns det inget bättre än Cracking The Coding Interview, av Gayle Laakmann McDowell som presenterar 189+ Programmeringsfrågor och lösning. En bra bok för att förbereda sig för programmeringsintervjuer på kort tid. Btw, jag kommer också att tjäna lite pengar om du köper någon av dessa resurser som nämns här.
Några tips för kodningsintervjuer
- Det finns inget bättre sätt att göra bra ifrån sig i kodningsintervjuer än att öva så många kodningsproblem som möjligt. Detta kommer inte bara att träna ditt sinne att känna igen algoritmiska mönster i problem utan också ge dig det välbehövliga självförtroendet att lösa problem som du aldrig har sett förut.
- Mina andra tips är att lära dig om så många datastrukturer och algoritmer som möjligt. Detta är en förlängning av det föregående tipset, men det handlar också om att läsa och inte bara öva. Om du till exempel känner till hashtabellen kan du också många array- och räknarbaserade problem enkelt lösa. Samma sak gäller för träd och grafer.
- Välja rätt datastruktur är en mycket viktig del av mjukvaruutveckling och kodningsintervju och om och tills du känner till dem kommer du inte att kunna välja.
- Timma dig själv – kandidater som löser intervjuproblem inom tidsgränsen och snabbt har större sannolikhet att klara sig bra i intervjun, så du bör också tajma dig själv.
- Tänk på edge cases och kör din kod genom dem. Några bra randfall kan vara tomma inmatningar, konstiga inmatningar eller riktigt stora inmatningar för att testa randvillkoren och gränserna.
- När du har löst problemet kan du försöka förklara det för en vän eller en kollega som också är intresserad av kodningsproblem. Detta kommer att visa dig om du verkligen har förstått problemet eller inte. Om du kan förklara lätt betyder det att du har förstått. Dessutom får diskussionen ditt sinne att fungera och du kan komma på en alternativ lösning och hitta några brister i dina befintliga algoritmer.
- Ett annat användbart tips för att lyckas med kodningsintervjuer är att delta i kodningsintervjuer och många av dem. Du kommer att märka att du blir bättre efter varje intervju och detta hjälper dig också att få flera erbjudanden, vilket gör det möjligt för dig att förhandla bättre och få de där extra 30 000 till 50 000 som du vanligtvis lämnar på bordet om du bara har ett erbjudande i handen.
- Btw, Om du är redo för kodningsintervjun kan du också ta TripleBytes frågesport och gå direkt till slutrundan av intervjuer med de bästa teknikföretagen som Coursera, Adobe Acrobat, Dropbox, Grammarly, Uber, Quora, Evernote, Twitch, och många fler. Jag kände inte till Triplebyte tidigare, men de tillhandahåller en fantastisk tjänst för arbetssökande. Ett stort tack till dem.
Top 100 kodningsproblem från programmeringsjobbintervjuer
Och utan att slösa mer av din tid, här är min lista över 100 ofta ställda kodningsproblem från programmeringsjobbintervjuer. För att få ut det mesta av den här listan föreslår jag att du faktiskt löser problemet.
Gör det själv, oavsett om du fastnat eller inte, för det är det enda sättet att lära sig. Efter att ha löst ett par problem kommer du att få självförtroende. Jag föreslår också att du tittar på lösningen när du fastnat eller efter att du har löst problemet, på så sätt lär du dig att jämföra olika lösningar och hur man närmar sig ett problem från en annan vinkel.
- Hur implementeras en bubbelsorteringsalgoritm? (lösning)
- Hur implementeras en algoritm för sammanslagningssortering? (lösning)
- Hur räknar man förekomsten av ett visst tecken i en sträng? (lösning)
- Hur skriver man ut det första icke upprepade tecknet i en sträng? (lösning)
- Hur konverterar man en given String till int som atoi()? (lösning)
- Hur implementerar du en algoritm för hink-sortering? (lösning)
- Hur implementerar du en räknesorteringsalgoritm? (lösning)
- Hur tar man bort dubbletter från en array på plats? (lösning)
- Hur vänder man en array på plats i Java? (lösning)
- Hur tas dubbletter bort från en array utan att använda något bibliotek? (lösning)
- Hur implementeras en radixsorteringsalgoritm? (lösning)
- Hur byter man ut två tal utan att använda den tredje variabeln? (lösning)
- Hur kontrollerar man om två rektanglar överlappar varandra? (lösning)
- Hur utformar man en varuautomat? (lösning)
- Hur hittar du det tal som saknas i ett givet heltalsfält från 1 till 100? (lösning)
- Hur hittar du det dubbla talet i en given heltalsmatris? (lösning)
- Hur hittar du dubbeltal i en array om den innehåller flera dubbletter? (lösning)
- Skillnaden mellan en stabil och instabil sorteringsalgoritm? (svar)
- Hur implementeras en iterativ quicksort-algoritm? (lösning)
- Hur hittar man det största och minsta talet i en osorterad heltalsmatris? (lösning)
- Hur vänder man en länkad lista på plats? (lösning)
- Hur lägger man till ett element i mitten av en länkad lista? (lösning)
- Hur sorterar man en länkad lista i Java? (lösning)
- Hur hittar man alla par i en heltalsarray vars summa är lika med ett givet tal? (lösning)
- Hur implementerar du en algoritm för insättningssortering? (lösning)
- Hur tas dubbletter bort från en given array i Java? (lösning)
- Hur tar man bort dubbla tecken från String? (lösning)
- Hur hittar man det mest förekommande tecknet i en given String? (lösning)
- Hur sorteras en heltalsarray på plats med hjälp av quicksort-algoritmen? (lösning)
- Hur vänds en given sträng på plats? (lösning)
- Hur skriver man ut dubbla tecken från en sträng? (lösning)
- Hur kontrollerar man om två strängar är anagram till varandra? (lösning)
- Hur hittar man alla permutationer av en sträng? (lösning)
- Hur kan man vända en given sträng med hjälp av rekursion? (lösning)
- Hur kan man kontrollera om en given sträng är en palindrom? (lösning)
- Hur hittar man längden på den längsta delsträngen utan att upprepa tecken? (lösning)
- Given string str, Hur hittar du den längsta palindromiska delsträngen i str? (lösning)
- Hur kontrollerar man om en sträng endast innehåller siffror? (lösning)
- Hur tar man bort Nth Node från slutet av en länkad lista? (lösning)
- Hur slår man ihop två sorterade länkade listor? (lösning)
- Hur konverterar man en sorterad lista till ett binärt sökträd? (lösning)
- Hur hittar man dubbla tecken i en given sträng? (lösning)
- Hur räknar man antalet vokaler och konsonanter i en given sträng? (lösning)
- Hur vänder man ord i en given mening utan att använda någon biblioteksmetod? (lösning)
- Hur kontrollerar du om två strängar är en rotation av varandra? (lösning)
- Hur konverterar man en byte array till String? (lösning)
- Hur tar man bort ett visst tecken från String? (lösning)
- Hur hittar man det mittersta elementet i en singelkopplad lista i ett enda steg? (lösning)
- Hur kontrollerar du om en given länkad lista innehåller en cykel? Hur hittar man cykelns startnod? (lösning)
- Hur vänder man en länkad lista? (lösning)
- Hur vänder man en enkelt länkad lista utan rekursion? (lösning)
- Hur tas dubbla noder bort i en osorterad länkad lista? (lösning)
- Hur hittar man längden på en singelkopplad lista? (lösning)
- Hur hittar man den tredje noden från slutet i en singelkopplad lista? (lösning)
- Hur hittar du summan av två länkade listor med hjälp av Stack? (lösning)
- Vad är skillnaden mellan array och länkad lista? (svar)
- Hur tar man bort dubbletter från en sorterad länkad lista? (lösning)
- Hur hittar man den nod vid vilken skärningspunkten mellan två enkelt länkade listor börjar. (lösning)
- Givet en länkad lista och ett värde x, partitionera den så att alla noder som är mindre än x kommer före noder som är större än eller lika med x. (lösning)
- Hur kontrollerar man om en given länkad lista är en palindrom? (lösning)
- Hur tar man bort alla element från en länkad lista med heltal som matchar ett givet värde? (lösning)
- Hur implementeras ett binärt sökträd? (lösning)
- Hur utför man traversering i förväg i ett givet binärt träd? (lösning)
- Hur traverserar man ett givet binärt träd i preorder utan rekursion? (lösning)
- Hur utför man en inorder traversal i ett givet binärt träd? (lösning)
- Hur skriver du ut alla noder i ett givet binärt träd med hjälp av inorder traversal utan rekursion? (lösning)
- Hur implementerar du en algoritm för postordertraversal? (lösning)
- Hur traverterar du ett binärt träd med postordertraversal utan rekursion? (lösning)
- Hur skrivs alla blad i ett binärt sökträd ut? (lösning)
- Hur räknar man antalet bladnoder i ett givet binärt träd? (lösning)
- Hur utför man en binär sökning i en given matris? (lösning)
- Hur byter man ut två tal utan att använda den tredje variabeln? (lösning)
- Hur kontrollerar man om två rektanglar överlappar varandra? (lösning)
- Hur utformar man en varuautomat? (lösning)
- Hur implementerar du en LRU Cache i ditt favoritprogrammeringsspråk? (lösning)
- Hur kontrollerar man om ett givet tal är en palindrom? (lösning)
- Hur kontrollerar man om ett givet tal är ett Armstrongtal? (lösning)
- Hur hittar man alla primfaktorer till ett givet tal? (lösning)
- Hur kontrollerar man om ett givet tal är positivt eller negativt i Java? (lösning)
- Hur hittar man den största primfaktorn till ett givet heltal? (lösning)
- Hur skriver man ut alla primtal upp till ett givet tal? (lösning)
- Hur skriver man ut Floyds triangel? (lösning)
- Hur skriver man ut Pascals triangel? (lösning)
- Hur beräknar man kvadratroten av ett givet tal? (lösning)
- Hur kontrollerar man om ett givet tal är ett primtal? (lösning)
- Hur adderar man två tal utan att använda plusoperatorn i Java? (lösning)
- Hur kontrollerar man om ett givet tal är jämnt/ohmm utan att använda aritmetisk operatör? (lösning)
- Hur skriver man ut en given pyramidstruktur? (lösning)
- Hur hittar man den högsta repeterande världen från en given fil i Java? (lösning)
- Hur man vänder ett givet heltal i Java? (lösning)
- Hur konverterar man ett decimaltal till binärt tal i Java? (lösning)
- Hur kontrollerar man om ett givet år är ett skottår i Java? (lösning)
- Kan man implementera en binär sökalgoritm utan rekursion? (lösning)
- Skillnaden mellan en stabil och instabil sorteringsalgoritm? (svar)
- Vad är Depth First Search Algorithm för ett binärt träd? (lösning)
- Hur implementeras en iterativ quicksort-algoritm? (lösning)
- Hur implementeras en insättningssorteringsalgoritm? (lösning)
- Hur implementeras en algoritm för sammanslagningssortering? (lösning)
- Vad är skillnaden mellan sorteringsalgoritmer med och utan jämförelse? (svar)
- Hur implementeras Sieve of Eratosthenes algoritmer för primtal? (lösning)
Dessa många frågor borde räcka, men om du behöver fler sådana kodningsfrågor kan du ta hjälp av böcker som Cracking The Code Interview, av Gayle Laakmann McDowell, som innehåller 189+ programmeringsfrågor och lösningar. En bra bok för att förbereda sig för programmeringsintervjuer på kort tid.
Nu är du redo för kodningsintervjun
Det här är några av de vanligaste frågorna utanför datastruktur och algoritmer som hjälper dig att göra riktigt bra ifrån dig på intervjun.
Jag har också delat många av dessa frågor på min blogg, så om du verkligen är intresserad kan du alltid gå dit och söka efter dem.
Dessa vanliga frågor om kodning, datastruktur och algoritmer är de frågor som du behöver känna till för att lyckas med en intervju med alla företag, stora som små, för alla nivåer av programmeringsjobb.
Om du letar efter ett programmerings- eller mjukvaruutvecklingsjobb 2019 kan du börja dina förberedelser med den här listan med kodningsfrågor och om du är redo för intervju kan du också ta TripleBytes frågesport och gå direkt till slutomgången av intervjuer med de bästa teknikföretagen som Coursera, Adobe, Dropbox, Grammarly och många fler.
Denna lista ger dig bra ämnen att förbereda dig på och hjälper dig också att bedöma dina förberedelser för att ta reda på dina starka och svaga områden.
Goda kunskaper om datastrukturer och algoritmer är viktiga för att lyckas i kodningsintervjuer och det är där du bör fokusera det mesta av din uppmärksamhet.
Framtidsstudier
Datastrukturer och algoritmer: Deep Dive Using Java
10 böcker för att förbereda tekniska intervjuer för programmering/kodning
10 algoritmböcker som varje programmerare bör läsa
De fem bästa böckerna om datastrukturer och algoritmer för Javautvecklare
Från 0 till 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
Tack, Du kom fram till slutet av artikeln … Lycka till med din programmering intervju! Det kommer säkerligen inte att bli lätt, men genom att följa dessa frågor om sökning och sortering av algoritmer är du ett steg närmare än andra. Förresten, ju fler frågor du löser i praktiken, desto bättre blir din förberedelse.
Så, om du tycker att 100 kodningsproblem inte räcker till och att du behöver mer, så kolla in dessa ytterligare 50 programmeringsfrågor för telefonintervjuer och dessa böcker och kurser för en grundligare förberedelse.
Allt gott för din kodningsintervju.
Annan artiklar du kanske gillar: