Solvi questi problemi di codifica frequentemente posti per fare bene nei tuoi prossimi colloqui di lavoro di programmazione.
.
Le interviste di codifica sono una cosa così importante nella vita di un programmatore che non può sfuggire. È il primo ostacolo che devono superare per ottenere il lavoro di sviluppatore di software che desiderano durante i loro giorni di scuola e di college.
Per peggiorare la situazione, troverete così tante persone su internet che dicono che l’intervista di codifica è difettosa, il processo di assunzione per i programmatori fa schifo e così via, ma non è necessario prestare attenzione a loro, non almeno all’inizio della vostra carriera.
Potrebbero avere ragione ma sono dentro il treno in cui state cercando di entrare. Non importa quanto critichino le interviste di codifica e il processo di assunzione dei programmatori, molti di loro sono passati attraverso lo stesso percorso per arrivare dove sono.
Sappiamo tutti che il sistema delle interviste di codifica non è perfetto e molti stanno cercando di cambiarlo, ma finché non sarà cambiato, devi seguire le sue regole per entrare nel sistema. Questo è qualcosa che gli sviluppatori esperti devono affrontare, come sviluppatore junior la tua priorità dovrebbe essere quella di cancellare l’intervista di codifica e ottenere il lavoro che vuoi.
Come autore di un blog Java e di una pubblicazione Medium, ricevo un sacco di domande relative a problemi di codifica e come affrontarli ed è per questo che continuo a scrivere articoli come questo che hanno aiutato molti programmatori direttamente e indirettamente nella loro carriera.
In questo articolo, sto per condividere con voi la top 100 problemi di intervista di codifica da colloqui di lavoro di programmazione che ogni programmatore dovrebbe conoscere.
Ora che, ho eliminato la confusione che l’intervista di codifica è importante e non si dovrebbe distrarre, entriamo nel lavoro reale. La grande domanda è cosa preparare per le interviste di codifica?
Bene, la cosa più importante da preparare sono i problemi di codifica basati sulla struttura dei dati come problemi di codifica basati su array, problemi di stringhe, problemi di liste collegate, problemi di alberi binari, ecc.
Oltre alle domande basate sulla struttura dei dati, la maggior parte dei colloqui di lavoro di programmazione pone anche domande su algoritmi, design, manipolazione di bit e logica generale, che descriverò in questa sezione.
È importante che vi esercitiate su questi concetti perché a volte diventano difficili da risolvere nell’intervista vera e propria. Averli praticati prima non solo ti rende familiare, ma ti dà anche più fiducia nello spiegare la soluzione all’intervistatore.
Uno dei problemi principali con i problemi di codifica è che ci sono centinaia e migliaia di problemi di codifica nelle interviste, ci sono anche siti come LeetCode, HackerRank, Codewars, Topcoder, freeCodeCamp, HackerEarth che addestrano i programmatori per le interviste di codifica con un sacco di domande difficili, che a volte sopraffanno un principiante che cerca un lavoro.
Credo nella semplicità e nel 10% di sforzo che produce il 90% dei risultati ed è per questo che ho raccolto i 100 migliori problemi di codifica che non sono troppo difficili e anche frequentemente chiesti nelle interviste reali.
Risolvere questi problemi non solo ti darà fiducia ma ti aiuterà anche a riconoscere alcuni dei più comuni modelli algoritmici che ti aiuteranno anche a risolvere alcuni problemi non visti nelle interviste reali.
Risorse per interviste di codifica
La selezione di buone risorse è molto importante per il successo nelle tue interviste di codifica. Se hai scelto una risorsa sbagliata, allora più che i soldi, perderai tempo prezioso di cui hai bisogno per la preparazione, quindi spendi un po’ di tempo nella ricerca di una buona risorsa.
Se hai bisogno di raccomandazioni, ecco alcune delle mie risorse provate e testate per imparare la struttura dei dati e gli algoritmi in profondità per le interviste di codifica:
- Strutture dati e algoritmi: Deep Dive Using Java per sviluppatori Java. Impara Array, Linked Lists, Trees, Hashtables, Stacks, Queues, Heaps, Algoritmi di ordinamento e algoritmi di ricerca
- Algoritmi e strutture dati in Python per chi ama Python
Una guida per implementare da zero gli algoritmi più aggiornati: array, linked lists, algoritmi grafici e ordinamento
- JavaScript Algorithms and Data Structures Masterclass di Colt_Steele per programmatori JavaScript. Il Bootcamp mancante per l’informatica e le interviste di codifica. Impara tutto ciò di cui hai bisogno per superare difficili interviste di codifica.
- Mastering Data Structures & Algoritmi usando C e C++ per coloro che sono bravi in C/C++
- Data Structures in Java: An Interview Refresher by The Educative Team per rinfrescare importanti concetti di strutture dati e algoritmi in Java. Questo corso contiene una revisione dettagliata di tutte le strutture dati comuni e fornisce dettagli sull’implementazione in Java per permettere ai lettori di diventare ben equipaggiati.
- Grokking the Coding Interview: Patterns for Coding Questions di Fahim ul Haq e The Educative Team
Questo è come il meta corso per le interviste di codifica, che non ti insegnerà come risolvere un problema di codifica ma, invece, ti insegnerà come risolvere un particolare tipo di problemi di codifica usando i pattern. Padroneggiate questi 15 modelli di base per le domande di intervista, e sarete in grado di affrontare qualsiasi cosa vi troviate di fronte nell’intervista
E, se preferite i libri, non c’è niente di meglio di Cracking The Coding Interview, di Gayle Laakmann McDowell che presenta 189+ domande di programmazione e soluzione. Un buon libro per prepararsi alle interviste di lavoro di programmazione in poco tempo. Btw, guadagnerò anche un po’ di soldi se compri una qualsiasi di queste risorse menzionate qui.
Alcuni suggerimenti per le interviste di codifica
- Non c’è modo migliore per fare bene nelle interviste di codifica che esercitarsi in più problemi di codifica possibile. Questo non solo allenerà la vostra mente a riconoscere i modelli algoritmici nei problemi, ma vi darà anche la fiducia necessaria per risolvere il problema che non avete mai visto prima.
- Il mio secondo consiglio è quello di imparare il maggior numero possibile di strutture dati e algoritmi. Questa è un’estensione del consiglio precedente, ma implica anche la lettura e non solo la pratica. Per esempio, se si conosce la tabella hash si possono facilmente risolvere anche molti problemi basati su array e contatori. Lo stesso vale per l’albero e il grafico.
- Scegliere la giusta struttura di dati è una parte molto importante dello sviluppo del software e del colloquio di codifica e, a meno che e finché non li conosci, non sarai in grado di scegliere.
- Tempo – i candidati che risolvono i problemi del colloquio entro il limite di tempo e rapidamente hanno maggiori probabilità di fare bene nel colloquio, quindi dovresti anche tu tempo.
- Pensa ai casi limite ed esegui il tuo codice attraverso essi. Alcuni buoni casi limite potrebbero essere l’input vuoto, qualche input strano o qualche input veramente grande per testare le condizioni limite e i limiti.
- Dopo aver risolto il problema, provate a spiegarlo a un amico o a un collega che è anche interessato ai problemi di codifica. Questo vi dirà se avete veramente capito il problema o no. Se puoi spiegare facilmente significa che hai capito. Inoltre, la discussione fa lavorare la tua mente e potresti trovare una soluzione alternativa e trovare alcuni difetti nei tuoi algoritmi esistenti.
- Un altro consiglio utile per eccellere nelle interviste di codifica è quello di apparire nell’intervista di codifica e molti di loro. Ti ritroverai a migliorare dopo ogni intervista e questo ti aiuta anche a ottenere offerte multiple che ti permettono inoltre di negoziare meglio e ottenere quei 30K-50K extra che generalmente lasci sul tavolo se hai solo un’offerta in mano.
- Btw, se sei pronto per l’intervista di codifica allora puoi anche prendere il quiz di TripleByte e andare direttamente al round finale delle interviste con le migliori aziende tecnologiche come Coursera, Adobe Acrobat, Dropbox, Grammarly, Uber, Quora, Evernote, Twitch, e molti altri. Non sapevo di Triplebyte prima, ma stanno fornendo un grande servizio a chi cerca lavoro. Un grande grazie a loro.
Top 100 Coding Problems from Programming Job interviews
Senza farvi perdere altro tempo, ecco la mia lista di 100 problemi di codifica chiesti frequentemente dai colloqui di lavoro di programmazione. Per ottenere la maggior parte di questa lista, suggerisco di risolvere effettivamente il problema.
Fallo da solo, non importa se sei bloccato perché questo è l’unico modo per imparare. Dopo aver risolto un paio di problemi guadagnerete fiducia. Ti suggerisco anche di guardare la soluzione quando sei bloccato o dopo aver risolto il problema, in questo modo impari a confrontare diverse soluzioni e come approcciare un problema da un’angolazione diversa.
- Come viene implementato un algoritmo bubble sort? (soluzione)
- Come viene implementato un algoritmo di merge sort? (soluzione)
- Come si contano le occorrenze di un dato carattere in una stringa? (soluzione)
- Come si stampa il primo carattere non ripetuto di una stringa? (soluzione)
- Come si converte una data stringa in int come la atoi()? (soluzione)
- Come si implementa un algoritmo di bucket sort? (soluzione)
- Come si implementa un algoritmo di ordinamento di conteggio? (soluzione)
- Come rimuovi i duplicati da un array in posizione? (soluzione)
- Come si inverte un array in luogo in Java? (soluzione)
- Come si rimuovono i duplicati da un array senza usare alcuna libreria? (soluzione)
- Come viene implementato un algoritmo radix sort? (soluzione)
- Come si scambiano due numeri senza usare la terza variabile? (soluzione)
- Come si controlla se due rettangoli si sovrappongono tra loro? (soluzione)
- Come si progetta un distributore automatico? (soluzione)
- Come si fa a trovare il numero mancante in una data serie di numeri interi da 1 a 100? (soluzione)
- Come si trova il numero duplicato in una matrice intera data? (soluzione)
- Come trovate i numeri duplicati in una matrice se contiene più duplicati? (soluzione)
- Differenza tra un algoritmo di ordinamento stabile e instabile? (risposta)
- Come viene implementato un algoritmo di quicksort iterativo? (soluzione)
- Come si trova il numero più grande e più piccolo in un array intero non ordinato? (soluzione)
- Come si inverte una lista collegata in luogo? (soluzione)
- Come aggiungere un elemento al centro della lista collegata? (soluzione)
- Come si ordina una lista collegata in Java? (soluzione)
- Come trovare tutte le coppie di un array intero la cui somma è uguale a un dato numero? (soluzione)
- Come si implementa un algoritmo di ordinamento a inserimento? (soluzione)
- Come vengono rimossi i duplicati da un dato array in Java? (soluzione)
- come rimuovere il carattere duplicato da String? (soluzione)
- Come trovare il carattere massimo che si verifica in una data stringa? (soluzione)
- Come si ordina un array di interi in luogo usando l’algoritmo quicksort? (soluzione)
- Come si inverte una data stringa in luogo? (soluzione)
- Come si stampano i caratteri duplicati da una stringa? (soluzione)
- Come si controlla se due stringhe sono anagrammi l’una dell’altra? (soluzione)
- Come si trovano tutte le permutazioni di una stringa? (soluzione)
- Come si può invertire una data stringa usando la ricorsione? (soluzione)
- Come si controlla se una data stringa è un palindromo? (soluzione)
- Come si trova la lunghezza della sottostringa più lunga senza ripetere i caratteri? (soluzione)
- Data una stringa str, come si trova la più lunga sottostringa palindroma in str? (soluzione)
- Come si controlla se una stringa contiene solo cifre? (soluzione)
- Come rimuovere l’ennesimo nodo dalla fine di una lista collegata? (soluzione)
- Come unire due liste collegate ordinate? (soluzione)
- Come convertire una lista ordinata in un albero di ricerca binario? (soluzione)
- Come trovare i caratteri duplicati in una data stringa? (soluzione)
- Come si conta un numero di vocali e consonanti in una data stringa? (soluzione)
- Come si invertono le parole in una frase data senza usare alcun metodo di libreria? (soluzione)
- Come si controlla se due stringhe sono una rotazione dell’altra? (soluzione)
- Come convertire un array di byte in stringa? (soluzione)
- Come si rimuove un dato carattere dalla stringa? (soluzione)
- Come si trova l’elemento centrale di una lista collegata singolarmente in un solo passaggio? (soluzione)
- Come si controlla se una data lista collegata contiene un ciclo? Come trovi il nodo iniziale del ciclo? (soluzione)
- Come si inverte una lista collegata? (soluzione)
- Come si inverte una lista collegata singolarmente senza ricorsione? (soluzione)
- Come vengono rimossi i nodi duplicati in una lista collegata non ordinata? (soluzione)
- Come si trova la lunghezza di una lista linkata singolarmente? (soluzione)
- Come si trova il terzo nodo dalla fine in una lista linkata singolarmente? (soluzione)
- Come si trova la somma di due liste collegate usando Stack? (soluzione)
- Qual è la differenza tra array e lista collegata? (risposta)
- Come rimuovere i duplicati da una lista collegata ordinata? (soluzione)
- Come trovare il nodo in cui inizia l’intersezione di due liste collegate singolarmente. (soluzione)
- Data una lista collegata e un valore x, partizionarla in modo che tutti i nodi minori di x vengano prima dei nodi maggiori o uguali a x. (soluzione)
- Come controllare se una data lista collegata è un palindromo? (soluzione)
- Come rimuovere tutti gli elementi da una lista collegata di interi che corrispondono a un dato valore? (soluzione)
- Come si implementa un albero di ricerca binario? (soluzione)
- Come si esegue il preorder traversal in un albero binario dato? (soluzione)
- Come si attraversa un albero binario dato in preordine senza ricorsione? (soluzione)
- Come si esegue una traversata in ordine in un albero binario dato? (soluzione)
- Come si fa a stampare tutti i nodi di un albero binario dato usando l’inorder traversal senza ricorsione? (soluzione)
- Come si implementa un algoritmo di postorder traversal? (soluzione)
- Come si attraversa un albero binario in postorder traversal senza ricorsione? (soluzione)
- Come vengono stampate tutte le foglie di un albero di ricerca binario? (soluzione)
- Come si conta un numero di nodi foglia in un albero binario dato? (soluzione)
- Come si esegue una ricerca binaria in un dato array? (soluzione)
- Come scambiare due numeri senza usare la terza variabile? (soluzione)
- Come controllare se due rettangoli si sovrappongono tra loro? (soluzione)
- Come progettare un distributore automatico? (soluzione)
- Come implementare una cache LRU nel tuo linguaggio di programmazione preferito? (soluzione)
- Come controllare se un dato numero è un palindromo? (soluzione)
- Come controllare se un dato numero è un numero Armstrong? (soluzione)
- Come trovare tutti i fattori primi di un dato numero? (soluzione)
- Come controllare se un dato numero è positivo o negativo in Java? (soluzione)
- Come trovare il più grande fattore primo di un dato numero integrale? (soluzione)
- Come stampare tutti i numeri primi fino a un dato numero? (soluzione)
- Come stampare il triangolo di Floyd? (soluzione)
- Come stampare il triangolo di Pascal? (soluzione)
- Come calcolare la radice quadrata di un numero dato? (soluzione)
- Come controllare se il numero dato è un numero primo? (soluzione)
- Come aggiungere due numeri senza usare l’operatore più in Java? (soluzione)
- Come controllare se un dato numero è pari/dispari senza usare l’operatore aritmetico? (soluzione)
- Come stampare una data struttura Piramide? (soluzione)
- Come trovare il più alto mondo ripetuto da un dato file in Java? (soluzione)
- Come invertire un dato intero in Java? (soluzione)
- Come convertire un numero decimale in binario in Java? (soluzione)
- Come controllare se un dato anno è un anno bisestile in Java? (soluzione)
- È possibile implementare un algoritmo di ricerca binaria senza ricorsione? (soluzione)
- Differenza tra un algoritmo di ordinamento stabile e instabile? (risposta)
- Qual è l’algoritmo di ricerca di profondità per un albero binario? (soluzione)
- Come viene implementato un algoritmo quicksort iterativo? (soluzione)
- Come si implementa un algoritmo di insertion sort? (soluzione)
- Come viene implementato un algoritmo di merge sort? (soluzione)
- Qual è la differenza tra algoritmi di ordinamento a confronto e non a confronto? (risposta)
- Come si implementano gli algoritmi di setaccio di Eratostene per i numeri primi? (soluzione)
Queste molte domande dovrebbero essere sufficienti, ma se avete bisogno di più tali domande di codifica si può prendere aiuto da libri come Cracking The Code Interview, da Gayle Laakmann McDowell che presenta 189 + domande di programmazione e soluzione. Un buon libro per prepararsi ai colloqui di lavoro di programmazione in poco tempo.
Ora sei pronto per il colloquio di codifica
Queste sono alcune delle domande più comuni al di fuori della struttura dei dati e degli algoritmi che ti aiutano a fare veramente bene nel tuo colloquio.
Ho anche condiviso molte di queste domande sul mio blog, quindi se sei davvero interessato, puoi sempre andare lì e cercarle.
Queste domande comuni di codifica, struttura dei dati e algoritmi sono quelle che devi conoscere per fare un colloquio di successo con qualsiasi azienda, grande o piccola, per qualsiasi livello di lavoro di programmazione.
Se stai cercando un lavoro di programmazione o sviluppo software nel 2019, puoi iniziare la tua preparazione con questa lista di domande di codifica e se sei pronto per Interview allora puoi anche prendere il quiz di TripleByte e andare direttamente al round finale delle interviste con le migliori aziende tecnologiche come Coursera, Adobe, Dropbox, Grammarly e molti altri.
Questa lista fornisce buoni argomenti da preparare e aiuta anche a valutare la tua preparazione per scoprire le tue aree di forza e di debolezza.
Una buona conoscenza della struttura dei dati e degli algoritmi è importante per il successo nelle interviste di codifica ed è lì che dovresti concentrare la maggior parte della tua attenzione.
Più apprendimento
Strutture di dati e algoritmi: 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: Strutture di dati &Algoritmi in Java
Analisi della struttura dei dati e degli algoritmi – Colloquio di lavoro
20+ problemi di codifica basati su stringhe da interviste
20+ problemi di liste collegate da interviste
20+ problemi basati su algoritmi da interviste
Note conclusive
Grazie, sei arrivato alla fine dell’articolo … Buona fortuna con il tuo colloquio di programmazione! Non sarà certamente facile, ma seguendo queste domande sull’algoritmo di ricerca e ordinamento, sei un passo più vicino degli altri. A proposito, più domande risolvi nella pratica, migliore sarà la tua preparazione.
Così, se pensi che 100 problemi di codifica non siano sufficienti e hai bisogno di più, allora controlla queste ulteriori 50 domande di programmazione per colloqui telefonici e questi libri e corsi per una preparazione più approfondita.
Tutto il meglio per il tuo colloquio di codifica.
Altri articoli che potrebbero piacerti: