Table di cuntinutu[Piattà][Mostra]
- 1. Cumu definisce un Array?
- 2. Arrays Dynamic: Chì sò? Cosa li distingue da Basic Arrays?
- 3. Cumu varianu un array è un dizziunariu ?
- 4. Lista qualchi di i benefici è disvantaghji di arrays.
- 5. A cosa si riferisce "Sparse Array"?
- 6. Quandu sceglite una lista ligata sopra un array?
- 7. Chì distingue un array indexatu da un array assuciativu ?
- 8. Chì vantaghji hà Heap nantu à l'arrays sorted ?
- 9. Pudemu definisce a dimensione di l'array per esse negativu?
- 10. Cumu si trova l'interu mancante in un array da 1 à 100 elementi ?
- 11. Cumu truvà l'indici di un elementu in un array?
- 12. Cumu pudete caccià un elementu specificu da un array?
- 13. Cumu pò esse verificatu l'ugualità di dui arrays ?
- 14. Quandu avemu discututu array, chì vulete dì cù e frasi "Dimensione" è "Subscript"?
- Domande d'entrevista di codificazione
- 15. Cerca un paru in un array chì hà a somma specifica
- 16. Array binary sorting cù u tempu lineale
- 17. Truvate u più grande pruduttu dui-int in un array.
- 18. Cumu trasfurmà tutti i zeri di l'array à a fine
- 19. Cumu sorte un array cù duie entrate chì sò cambiate in una operazione.
- 20. Cumu unisce dui array ordenati in u locu.
- 21. Cumu riordenà un array di articuli in alterne pusizioni alta è bassa?
- 22. Cumu rimpiazzà ogni elementu di un array senza aduprà un operatore di divisionu cù u pruduttu di ogni elementu in u array?
- 23. Truvate l'elementu oddest in un array in tempu logaritmicu
- 24. Cumu uttene l'elementu più grande dopu per ogni elementu in un array circular?
- 25. Truvà u numeru d'inversione di un array?
- 26. Chì ghjè u prublema di trappula di l'acqua di pioggia ?
- cunchiusioni
L'entrevista di codificazione cuntene una serie di dumande DSA. Duvete esse espertu cù arrays se vi preparate per a vostra futura intervista tecnologica cù FAANG o un altru cummerciale di tecnulugia Tier-1.
In a maiò parte di l'entrevista di codificazione, vene in u sicondu postu à Strings. Un array hè un raggruppamentu di elementi di dati cunnessi mantinuti vicinu à l'altri in memoria.
Cumu sò cunnessi à tutti i linguaggi di prugrammazione, cum'è C, C++, Java, Python, Perl è Ruby, sò in ogni locu. Cuntinuà a leghje per alcune sfide di codificazione di pratica è dumande di intervista è risposte basate nantu à array.
Python serà utilizatu in questu post per affruntà i prublemi di codificazione perchè hè simplice d'utilizà, capisce è deve esse familiar à a maiò parte di noi.
Emperu cusì.
1. Cumu definisce un Array?
- Un gruppu di tipi di dati cunnessi hè un array.
- Arrays sò sempre fissi.
- U listessu tipu di variàbile hè almacenatu in parechji lochi da l'uggetti array.
- Tipi primitivi è riferimenti d'ughjettu sò tramindui cumpatibili cù questu.
2. Arrays Dynamic: Chì sò? Cosa li distingue da Basic Arrays?
A scala automatica chì i matrici dinamichi (cunnisciuti ancu com'è matrici crescenti, matrici ridimensionabili, arrays cambiabili, o ArrayLists in Java) furnisce hè un vantaghju significativu.
Duvete sempre sapè quanti elementi u vostru array guarderà in anticipu postu chì e matrici anu una dimensione fissa. Un array dinamicu, invece, cresce cum'è aghjunghjenu membri supplementari à questu, perchè ùn avete micca bisognu di cunnosce a so dimensione esatta prima.
3. Cumu varianu un array è un dizziunariu ?
Il s'agit d'une série de questions d'entrevue basée sur les principes fondamentaux qui sont régulièrement demandées. I seguenti sò e distinzioni chjave trà arrays è dizziunari:
- Un array hè una lista urdinata di elementi simili. U dizziunariu, invece, hà coppie chjave-valore.
- E dimensioni di l'array ponu cambià dinamicamente. Tali idee dinamiche ùn esistenu micca in dizziunari.
- Prima di utilizà un array, a so dimensione deve esse specificata. E dimensioni di u dizziunariu ùn anu micca bisognu di persunalizà.
- Aduprate a dichjarazione Redim se vulete espansione a dimensione di l'array. In i dizziunari, un elementu pò esse aghjuntu senza una dichjarazione.
4. Lista qualchi di i benefici è disvantaghji di arrays.
vantaghji:
- Arrays ponu sorte una quantità di elementi simultaneamente.
- Altri strutturi dati, cum'è pile, fila, listi ligati, arburi, grafici, etc., ponu esse implementati in un array.
- Un indice pò esse usatu per ghjunghje à un elementu di un array.
Tu me:
- A dimensione di un array deve esse dichjaratu in anticipu. À u mumentu di a dichjarazione di l'array, ùn pudemu micca, però, esse cuscenti di a dimensione chì avemu bisognu.
- A struttura di l'array hè statica. Implica chì a dimensione di l'array hè sempre fissa è chì l'allocazione di memoria ùn pò esse aumentata o diminuita.
5. A cosa si riferisce "Sparse Array"?
Un array sparse hè un array di dati chì hà assai entrate cù valori zero. In cuntrastu, un array densu cuntene a maiò parte di i so articuli cù valori micca zero. L'indici di un array sparse, chì cunverte numeri à l'uggetti, ponu include spazii. Comparatu à un HashMap, sò più efficienti in memoria.
6. Quandu sceglite una lista ligata sopra un array?
Quandu si usanu listi ligate invece di array, cunzidira:
- Ùn avete bisognu di elementi per avè accessu aleatoriu.
- Induve a prevedibilità tempurale hè essenziale, avete bisognu di inserimenti è rimozioni constanti da a lista.
- Per creà una fila di priorità, pudete bisognu di mette l'articuli in u centru di a lista.
- Ùn avete micca idea di quantu longa serà a lista. Se a dimensione di l'array aumenta, duvete ridichjarà è duplicà a memoria, cum'è cù array simplici.
7. Chì distingue un array indexatu da un array assuciativu ?
E distinzioni primarie trà arrays associativi è indexati sò listati in a tavula seguente.
- Un paru chjave-valore in formatu testu o numericu hè utilizatu per sorte un array assuciativu. I chjavi di l'array indexatu sò tutti numerichi, è ogni chjave hè cunnessu à un valore distintu.
- In un array associative, a chjave pò esse una stringa. Array indexatu cù chjavi interi chì partenu da 0.
- Un tavulinu di dui culonni imita u cumpurtamentu di un array assuciativu. Simile à una tavula di una sola colonna sò array indexati.
- I carte sò un tipu di array associative. Un array d'indici ùn hè micca una mappa.
8. Chì vantaghji hà Heap nantu à l'arrays sorted ?
L'efficienza di u tempu di utilizà Heap over Sorted Arrays hè u benefiziu chjave. Mentre l'operazioni di u munzeddu sò più veloci, l'ordine di una matrice richiede assai tempu. Un munzeddu pò scopre l'elementu più chjucu considerablemente più rapidamente ch'è un array pò esse ordenatu.
Una data cullizzioni di numeri pò esse disposti in una di duie manere cù Arrays Sorted. Per d 'altra banda, per una data cullizzioni di numeri, pò esse più di un munzeddu potenziale.
9. Pudemu definisce a dimensione di l'array per esse negativu?
No, ùn pudemu micca definisce un interu negativu per esse a dimensione di un array. Ùn ci sarà micca un errore di compilazione se dichjaremu. À u tempu di runtime, avemu, però, scontru una NegativeArraySizeException.
10. Cumu si trova l'interu mancante in un array da 1 à 100 elementi ?
U tutale di a serie pò esse calculatu appliendu a seguente funzione: n (n + 1) / 2
Solu se l'array ùn hà micca duplicati o hà più di un interu mancante, sta funzione operarà. Sia un array hà elementi duplicati, pudete sorte l'array per vede s'ellu ci sò elementi equivalenti.
11. Cumu truvà l'indici di un elementu in un array?
L'indice di un elementu pò esse scupertu per via di una ricerca lineale o binaria. Finu à localizza a partita di l'elementu necessariu, una funzione di ricerca lineale passa in ogni elementu in un array. Ritorna l'indici una volta chì localizza l'elementu currispundente. In cunseguenza, a cumplessità temporale di a ricerca lineale hè O. (n). Sia una matrice ordinata sia una matrice senza classificazione ponu utilizà a ricerca lineare.
Utilizendu una ricerca binaria, chì divide continuamente l'array in a mità finu à chì a mediana di l'intervallu currisponde à l'elementu necessariu è furnisce l'indici, pudete ottene l'indici di l'elementu se u array hè ordenatu. In cunseguenza, a cumplessità temporale di a ricerca binaria hè O. (log n).
12. Cumu pudete caccià un elementu specificu da un array?
Siccomu ùn pudete micca solu sguassate elementi da l'array originale, postu chì sò setti fissi cù una dimensione definita, l'entrevistadore cerca di voi per suggerisce un approcciu diversu è trattà cù u prublema chì a quistione suscita. U megliu cursu di azzione hè di fà un novu array per sguassà un elementu. Pudete duplicà l'elementi da u primu array in questa matrice è include solu l'elementu chì vulete sguassà.
Un'altra strategia implica di truvà l'elementu di destinazione in l'array è dopu inverte l'ordine di tutti l'articuli chì sò à a diritta di l'elementu di destinazione.
13. Cumu pò esse verificatu l'ugualità di dui arrays ?
Prima deve verificate e lunghezze di i dui arrays furniti. L'articuli currispondenti di i dui array sò paragunati quandu e so lunghezze sò uguali. I dui matrici seranu cunsiderate uguali. se ogni paru di cumpunenti in ogni currispundenza hè uguali. Stu approcciu ùn hè micca cunsigliatu per verificà l'ugualità di dui array se i arrays sò grande in grandezza postu chì duverà assai tempu. Pudete ancu aduprà u metudu equals () inclusu in a classa Arrays, però, se l'entrevistadore vi dumanda di paragunà dui matrici senza utilizà metudi integrati, questu modu serà utile.
14. Quandu avemu discututu array, chì vulete dì cù e frasi "Dimensione" è "Subscript"?
A "Dimensione" di un array hè u numeru di indici, o subscripts, necessariu per identificà ogni membru individuale. L'abbonamenti è e dimensioni pò esse micca chjaru. Una dimensione hè una descrizzione di a gamma di chjavi permessi, mentri un subscriptu hè un numeru. Ci hè solu un subscriptu necessariu per ogni dimensione di array.
Per esempiu, l'array arr[10][5] hà duie dimensioni. Taglie 10 da una è 5 da l'altra. Per affruntà i so cumpunenti, avete bisognu di dui subscripts. Tutti dui sò trà 0 è 4; unu trà 0 è 9, inclusi.
Domande d'entrevista di codificazione
15. Cerca un paru in un array chì hà a somma specifica
Per esempiu,
Input:
- numeri = [8, 7, 2, 5, 3, 1]
- target = 10
Output:
- Coppia trovu (8, 2)
- Or
- Coppia trovu (7, 3)
Input:
- numeri = [5, 2, 6, 8, 1, 9]
- target = 12
Output:
- Coppia micca trovu
16. Array binary sorting cù u tempu lineale
Ordine un array binariu in tempu lineale è in una zona fissa. L'output deve vede tutti i zeri prima, poi tutti.
Per esempiu,
- Input: {1, 0, 1, 0, 1, 0, 0, 1}
- Output: {0, 0, 0, 0, 1, 1, 1, 1}
Un accostu simplice seria di calculà u numeru tutale di 0s di l'array, dì k, è poi riempie i primi k indici in l'array cù 0 è l'indici rimanenti cù 1. In alternativa, pudemu calculà quanti 1 sò totali in l'array. array k, riempie l'ultimi k indici in u array cù 1, è lasciate u restu di l'indici pieni di 0.
L'approcciu datu hà una cumplessità di tempu O (n) è ùn usa micca almacenamentu supplementu, induve n hè a dimensione di l'input.
17. Truvate u più grande pruduttu dui-int in un array.
Truvate u più grande pruduttu di dui numeri in un array integer.
Pensate à l'array 10 3 5 6 2 per esempiu. U paru (-10, -3) o (5, 6) hè u pruduttu più altu.
Pensà à ogni cumminazione di elementi è capisce u so pruduttu hè un approcciu stupidu. Se u pruduttu di u paru attuale hè più grande di u pruduttu massimu ottenutu finu à quì, aghjurnà u pruduttu massimu. Stampa l'ultimi cumpunenti di u pruduttu finali.
A suluzione sopra, induve n hè a quantità di l'input, hà una cumplessità di tempu di O (n2) è ùn occupa più spaziu.
18. Cumu trasfurmà tutti i zeri di l'array à a fine
Sposta tutti i zeri in un array integer à a fine. A risposta deve esse evitata di usà u spaziu constantu è priservà l'ordine relativo di i cumpunenti di l'array.
Input: {1,2,3,0,8,0,4,7}
L'output serà {1,2,3,8,4,7,0,0}
Pone l'elementu à a seguente pusizioni dispunibuli in u array se l'elementu attuale ùn hè micca zero. Riempite tutti l'indici rimanenti cù 0 una volta chì l'articuli di l'array sò stati tutti processati.
A suluzione precedente hà una cumplessità di tempu O(n), induve n hè a dimensione di l'input.
19. Cumu sorte un array cù duie entrate chì sò cambiate in una operazione.
Ordine un array in u tempu lineale datu dui elementi scambiati è un array cù tutti i so elementi disposti in ordine crescente. Fate finta chì l'array ùn cuntene micca duplicati.
Input:= [1,9,3,4,7,2] o [9,3,7,2,1,4] o [2,4,1,7,3,9]
Output: = [1,2,3,4,7,9]
Partendu cù u sicondu elementu in u array, l'ughjettu hè di paragunà ogni elementu cù u so predecessore. A pusizione di a disputa hè guardata pigliendu dui puntatori, x è y.
Aghjurnate x à l'indici di l'elementu precedente è y à l'indici di l'elementu attuale se u primu hè più grande di l'ultimu. Aghjurnà y à l'indici di l'elementu currente se risulta chì l'elementu precedente hè più grande di l'elementu attuale.
Infine, cambia l'elementi à l'indici x è y una volta avemu finitu di trasfurmà ogni paru di elementi adiacenti.
A causa di u fattu chì u metudu sopra citatu esegue solu una sola scansione di l'array di input di dimensione n, a so cumplessità di u tempu hè O (n). Nisun spaziu supplementu hè necessariu per a suluzione.
20. Cumu unisce dui array ordenati in u locu.
Unisce l'articuli di arrays X [] è Y [] - dui matrici ordinati di dimensione m è n ognunu - mantenendu l'ordine ordinatu, vale à dì, riempiendu X [] cù i primi m elementi più chjuchi è riempiendu Y[] cù u elementi rimanenti.
Se un elementu in l'array X[] hè digià in a pusizione ghjusta (vale à dì, quellu chì hè u più chjucu trà l'elementi rimanenti), ignorallu; altrimenti, rimpiazzà cù l'elementu più chjucu, chì hè ancu u primu membru di Y[]. Per mantene l'ordine ordinatu dopu à scambià, trasfiriu l'elementu (avà in Y[0]) à u so locu propiu in Y[].
A dimensione di u primu array hè m è a dimensione di u sicondu array hè n, è a cumplessità di u tempu hè O (mn).
21. Cumu riordenà un array di articuli in alterne pusizioni alta è bassa?
Rearrange un array integer in modu chì ogni membru sussegwente hè più grande di l'elementi precedenti è seguenti. Assumite chì l'array ùn include micca elementi duplicati.
A classificazione di l'array o l'usu di spaziu supplementu ùn hè micca necessariu per un approcciu efficace. U pianu hè, per cumincià, u sicondu membru di l'array è cullà da dui per ogni iterazione di loop.
Scambià i cumpunenti se l'ultimu elementu supera u primu. In una fila simili, cambia i dui elementi se l'elementu seguente hè più grande di l'elementu attuale. Otteneremu a matrice desiderata chì cumpia cù e restrizioni specificate à a cunclusione di u ciclu.
22. Cumu rimpiazzà ogni elementu di un array senza aduprà un operatore di divisionu cù u pruduttu di ogni elementu in u array?
Senza aduprà l'operatore di divisione, rimpiazzà ogni elementu in un array integer cù u pruduttu di tutti l'altri elementi.
In u tempu lineale è u spaziu custante, pudemu usà a ricursione per affruntà stu prublema. Recursively calculating i prudutti di ogni elementu in u subarray dritta è passendu u prodottu subarray manca comu paràmetri funzione hè a nuzione.
A cumplessità di u tempu hè O(n).
23. Truvate l'elementu oddest in un array in tempu logaritmicu
Datu un array integer in quale tutti, ma un membru, anu un numeru pari d'occurrence, u prublema hè di determinà quante volte questu elementu appare. Truvate l'elementu stranu in u tempu logaritmicu è u spaziu custante se i stessi elementi si trovanu in coppie in l'array è ùn pò mai esse più di dui casi di un elementu datu in una fila.
L'operazione XOR ci permette di risolve stu prublema in tempu lineale. U scopu hè di XOR ogni elementu in u array. Solu l'elementi strani restanu dopu chì l'elementi pari si annullanu l'un l'altru.
Stu prublema pò ancu esse risolta in u tempu O(log(n)).
24. Cumu uttene l'elementu più grande dopu per ogni elementu in un array circular?
U prossimu elementu più grande per ogni elementu in un array integer circular deve esse situatu. U primu integeru più grande dopu un elementu x in l'array hè l'elementu più grande dopu di quellu elementu.
Da diritta à manca, pudemu uperà nantu à elementi di array. L'obiettivu hè di fà un ciclu per ogni elementu x finu à chì a pila hè viota o avemu un elementu più altu nantu à questu. Pone u prossimu elementu più grande di x per apparisce in cima di a pila quandu si faci.
25. Truvà u numeru d'inversione di un array?
Truvate u numeru tutale di inversioni di un array. Una coppia I j) hè riferita à una inversione di un array A se I j) è (A[i] > A[j]). Avemu da cuntà ogni paru di questi in l'array.
Cuntà tutti i membri di l'array chì sò menu di quellu à a so diritta è aghjunghje u risultatu à l'output hè un approcciu simplice.
Sta suluzione hà una cumplessità O(n2), induve n hè a dimensione di l'input.
26. Chì ghjè u prublema di trappula di l'acqua di pioggia ?
Truvà a maiò parte di l'acqua chì pò esse intrappulata in un determinatu settore di bars cù una larghezza di una unità ognunu hè cunnisciutu com'è u prublema "trapping rainfall".
U scopu hè di determinà a barra più alta chì pò esse piazzata à a manca è à a diritta di ogni barra. U minimu di i bars principali à a manca è à a diritta, menu l'altezza di a barra attuale, hè a quantità d'acqua chì hè almacenata nantu à ogni barra.
cunchiusioni
Comparatu à l'altri temi di struttura di dati, i matrici sò più simplici. Per risponde à e dumande di l'entrevista di array, avete bisognu di avè una cunniscenza fundamentale di e matrici.
Duvete riviseghjà largamente i fundamenti di l'array, cumprese l'operazioni di array (da a dichjarazione / creazione di un array à l'accessu / mudificazione di l'articuli di array), è ancu di cuncetti di prugrammazione cum'è loops, recursion, è operatori basi per risponde bè à e dumande d'entrevista di array. Ricunniscite u prublema cumpletamente.
Duvete cercà una chiarificazione se avete qualchì dumanda. Pensate à dividisce u prublema in parti più gestibili. Assicuratevi di avè l'algoritmu in mente prima di inizià a prugrammazione; scrivite o visualisate in un diagramma di flussu. poi cumincià à scrive codice.
Lascia un Audiolibro