Bab lan Paragraf[Singidaken][Tampilake]
- 1. Kepiye sampeyan nemtokake Array?
- 2. Array Dinamis: Apa Iku? Apa sing mbedakake saka Array Dasar?
- 3. Kepiye carane larik lan kamus beda-beda?
- 4. Dhaptar sawetara keuntungan lan drawbacks saka susunan.
- 5. Apa sing diarani "Sparse Array"?
- 6. Nalika sampeyan bakal milih dhaftar disambung liwat Uploaded?
- 7. Apa sing mbedakake array sing diindeks saka array asosiatif?
- 8. Apa kaluwihan Heap saka susunan diurutake?
- 9. Apa kita bisa nemtokake ukuran array dadi negatif?
- 10. Kepiye carane nemokake integer sing ilang ing array 1 nganti 100 unsur?
- 11. Kepiye carane sampeyan nemokake indeks saka unsur ing array?
- 12. Kepiye carane sampeyan bisa nyisihake unsur tartamtu saka array?
- 13. Kepiye carane bisa diverifikasi kesetaraan loro array?
- 14. Nalika kita ngrembug babagan susunan, apa tegese tembung "Dimensi" lan "Subskrip"?
- Pitakonan Wawancara Coding
- 15. Nggoleki pasangan ing larik sing duwe jumlah tartamtu
- 16. Ngurutake array biner kanthi wektu linear
- 17. Golek produk loro-int paling gedhe ing Uploaded.
- 18. Carane ngalih kabeh nul Uploaded kanggo mburi
- 19. Cara ngurutake array karo rong entri sing diuripake ing siji operasi.
- 20. Carane gabungke loro susunan diurutake ing panggonan.
- 21. Kepiye cara ngatur maneh susunan barang kanthi ganti posisi dhuwur lan ngisor?
- 22. Carane ngganti saben unsur saka Uploaded tanpa nggunakake operator divisi karo produk saben unsur ing Uploaded?
- 23. Golek unsur oddest ing larik ing wektu logaritmik
- 24. Carane njaluk unsur ageng sakteruse kanggo saben unsur ing Uploaded bunder?
- 25. Temokake count inversi array?
- 26. Apa Masalah Jeblugan Banyu Udan?
- kesimpulan
Wawancara coding ngemot serangkaian pitakonan DSA. Sampeyan kudu trampil karo array yen sampeyan lagi siyap kanggo wawancara teknologi sing bakal teka karo FAANG utawa bisnis teknologi Tier-1 liyane.
Ing umume wawancara coding, ana ing posisi nomer loro kanggo Strings. Array minangka klompok unsur data sing gegandhengan sing disimpen ing memori sing cedhak.
Amarga disambungake menyang kabeh basa pamrograman, kayata C, C ++, Java, Python, Perl, lan Ruby, ana ing endi wae. Terus maca kanggo sawetara tantangan coding latihan lan pitakonan lan jawaban wawancara adhedhasar susunan.
Python bakal digunakake ing kiriman iki kanggo ngatasi masalah coding amarga gampang digunakake, dimengerteni, lan kudu dingerteni kanggo umume.
Ayo mulih.
1. Kepiye sampeyan nemtokake Array?
- Klompok jinis data sing gegandhengan yaiku array.
- Arrays tansah tetep.
- Variabel sing padha disimpen ing sawetara panggonan kanthi obyek array.
- Jinis primitif lan referensi obyek loro-lorone kompatibel karo.
2. Array Dinamis: Apa Iku? Apa sing mbedakake saka Array Dasar?
Skala otomatis sing disedhiyakake array dinamis (uga diarani array growable, array sing bisa diowahi ukurane, array sing bisa diganti, utawa ArrayLists ing Jawa) minangka kauntungan sing signifikan.
Sampeyan kudu tansah ngerti carane akeh unsur array bakal disimpen ing advance amarga array duwe ukuran tetep. A array dinamis, ing tangan liyane, mundak akeh nalika sampeyan nambah anggota tambahan menyang, supaya sampeyan ora perlu ngerti ukuran pas sakdurunge.
3. Kepiye carane larik lan kamus beda-beda?
Iki minangka pitakonan wawancara adhedhasar dhasar sing ditakoni kanthi rutin. Ing ngisor iki minangka prabédan utama antarane array lan kamus:
- Array minangka dhaptar barang sing padha. Kamus, ing tangan liyane, duwe pasangan kunci-nilai.
- Ukuran array bisa diganti kanthi dinamis. Gagasan dinamis kuwi ora ana ing kamus.
- Sadurunge nggunakake array, ukurane kudu ditemtokake. Ukuran kamus ora perlu disesuaikan.
- Gunakake statement Redim yen sampeyan pengin nggedhekake ukuran array. Ing kamus, unsur bisa ditambah tanpa deklarasi.
4. Dhaptar sawetara keuntungan lan drawbacks saka susunan.
Kaluwihan:
- Array bisa ngurutake sawetara unsur bebarengan.
- liyane struktur data, kaya tumpukan, antrian, dhaptar sing disambung, wit, grafik, lan sapiturute, bisa dileksanakake ing array.
- Indeks bisa digunakake kanggo nggayuh unsur array.
cacat:
- Ukuran array kudu diumumake luwih dhisik. Ing wayahe deklarasi array, kita bisa uga ora ngerti ukuran sing dibutuhake.
- Struktur array kasebut statis. Iki nuduhake manawa ukuran array mesthi tetep lan alokasi memori ora bisa ditambah utawa dikurangi.
5. Apa sing diarani "Sparse Array"?
Array jarang yaiku array data sing akeh entri kanthi nilai nol. Ing kontras, larik padhet ngemot mayoritas item karo nilai non-nol. Indeks array jarang, sing ngowahi angka dadi obyek, bisa uga kalebu kesenjangan. Dibandhingake karo HashMap, luwih efisien memori.
6. Nalika sampeyan bakal milih dhaftar disambung liwat Uploaded?
Nalika nggunakake dhaptar sing disambung tinimbang array, nimbang:
- Sampeyan ora perlu sembarang unsur duwe akses acak.
- Yen prediktabilitas temporal penting, sampeyan butuh sisipan lan mbusak saka dhaptar.
- Kanggo nggawe antrian prioritas, sampeyan bisa uga kudu nyelehake item ing tengah dhaptar.
- Sampeyan ora ngerti suwene dhaptar kasebut. Yen ukuran array mundhak, sampeyan kudu ngumumake maneh lan duplikat memori, kaya karo susunan prasaja.
7. Apa sing mbedakake array sing diindeks saka array asosiatif?
Bedane utama antarane larik asosiatif lan indeksasi kapacak ing tabel ing ngisor iki.
- Pasangan kunci-nilai ing format teks utawa angka digunakake kanggo ngurutake array asosiatif. Tombol array sing diindeks kabeh numerik, lan saben tombol disambungake menyang nilai sing béda.
- Ing larik asosiatif, kunci bisa dadi senar. Array sing diindeks kanthi tombol integer wiwit 0.
- Tabel rong kolom niru prilaku array asosiatif. Padha karo tabel siji-kolom ana indeks arrays.
- Peta minangka jinis array asosiatif. Array indeks dudu peta.
8. Apa kaluwihan Heap saka susunan diurutake?
Efisiensi wektu nggunakake Heap over Sorted Arrays minangka mupangat utama. Nalika operasi tumpukan luwih cepet, ngurutake array mbutuhake wektu akeh. Tumpukan bisa nemokake unsur sing paling cilik kanthi luwih cepet tinimbang sing bisa diurutake.
Koleksi nomer sing diwenehake bisa disusun kanthi salah siji saka rong cara nggunakake Array Diurut. Saliyane, kanggo koleksi nomer tartamtu, bisa uga ana luwih saka siji tumpukan potensial.
9. Apa kita bisa nemtokake ukuran array dadi negatif?
Ora, kita ora bisa nemtokake integer negatif dadi ukuran array. Ora bakal ana kesalahan wektu kompilasi yen kita ngumumake. Nanging, nalika runtime, kita bakal nemoni NegativeArraySizeException.
10. Kepiye carane nemokake integer sing ilang ing array 1 nganti 100 unsur?
Gunggunge seri bisa diitung kanthi nggunakake fungsi ing ngisor iki: n (n + 1) / 2
Mung yen larik ora duwe duplikat utawa luwih saka siji integer ilang, fungsi iki bisa digunakake. Apa array duwe duplikat unsur, sampeyan bisa ngurutake array kanggo ndeleng yen ana unsur sing padha.
11. Kepiye carane sampeyan nemokake indeks saka unsur ing array?
Indeks unsur bisa ditemokake liwat telusuran linear utawa binar. Nganti nemokake pertandhingan unsur sing dibutuhake, fungsi telusuran linear bakal ana ing saben unsur ing array. Iki ngasilake indeks sawise nemokake unsur sing cocog. Akibate, kompleksitas temporal telusuran linier yaiku O. (n). Larik sing diurut lan ora diurut bisa nggunakake telusuran linear.
Nggunakake telusuran binar, sing terus-terusan mbagi array dadi setengah nganti median interval cocog karo unsur sing dibutuhake lan menehi indeks, sampeyan bisa entuk indeks unsur yen array diurutake. Akibate, kompleksitas temporal telusuran binar yaiku O. (log n).
12. Kepiye carane sampeyan bisa nyisihake unsur tartamtu saka array?
Awit sampeyan ora bisa mung mbusak unsur saka Uploaded asli amarga padha nyetel set karo ukuran ditetepake, interviewer ngupaya kanggo menehi saran pendekatan beda lan menehi hasil karo masalah sing pitakonan ngundakake. Tindakan sing paling apik yaiku nggawe array anyar kanggo mbusak unsur. Sampeyan bisa nggawe duplikat unsur saka array pisanan ing array iki lan mung kalebu unsur sing pengin dibusak.
Strategi liyane kalebu nemokake unsur target ing larik banjur mbalikke urutan kabeh item sing ana ing sisih tengen unsur target.
13. Kepiye carane bisa diverifikasi kesetaraan loro array?
Sampeyan kudu verifikasi dawa saka rong array sing kasedhiya. Item sing cocog saka loro array dibandhingake nalika dawane padha. Loro array bakal dianggep padha. yen saben pasangan komponen ing saben korespondensi padha. Pendekatan iki ora disaranake kanggo mriksa podo loro array yen array gedhe ing ukuran amarga bakal njupuk akèh wektu. Sampeyan uga bisa nggunakake padha () cara klebu ing kelas Arrays, Nanging, yen interviewer takon sampeyan mbandhingaké loro susunan tanpa nggunakake cara dibangun ing, cara iki bakal migunani.
14. Nalika kita ngrembug babagan susunan, apa tegese tembung "Dimensi" lan "Subskrip"?
"Dimensi" array yaiku jumlah indeks, utawa subskrip, sing dibutuhake kanggo ngenali saben anggota. Langganan lan dimensi bisa uga ora jelas. Dimensi minangka katrangan babagan sawetara kunci sing diidini, dene subskrip minangka nomer. Mung ana siji subskrip sing dibutuhake kanggo saben dimensi array.
Contone, array arr [10] [5] duwe rong dimensi. Ukuran 10 ing siji lan 5 ing sisih liyane. Kanggo ngatasi komponen kasebut, sampeyan mbutuhake rong subskrip. Loro-lorone ana ing antarane 0 lan 4; siji antarane 0 lan 9, klebu.
Pitakonan Wawancara Coding
15. Nggoleki pasangan ing larik sing duwe jumlah tartamtu
Tuladhane,
Input:
- angka = [8, 7, 2, 5, 3, 1]
- target = 10
Output:
- Pasangan ditemokake (8, 2)
- Or
- Pasangan ditemokake (7, 3)
Input:
- angka = [5, 2, 6, 8, 1, 9]
- target = 12
Output:
- Pasangan ora ditemokake
16. Ngurutake array biner kanthi wektu linear
Urut array binar ing wektu linear lan ing area tetep. Output kudu nampilake kabeh nol dhisik, banjur kabeh.
Tuladhane,
- Input: { 1, 0, 1, 0, 1, 0, 0, 1 }
- Output: { 0, 0, 0, 0, 1, 1, 1, 1 }
A pendekatan langsung bakal ngetung nomer total array kang 0s, ngomong k, lan banjur isi k indeks pisanan ing array karo 0s lan indeks isih karo 1. Minangka alternatif, kita bisa ngetung jumlah 1s total ing. array k, isi indeks k pungkasan ing array kanthi 1, lan sisa indeks diisi 0.
Pendekatan diwenehi wis O (n) kerumitan wektu lan ora nggunakake panyimpenan tambahan, ngendi n iku ukuran input.
17. Golek produk loro-int paling gedhe ing Uploaded.
Temokake produk paling gedhe saka rong nomer ing array integer.
Coba larik 10 3 5 6 2 minangka conto. Pasangan (-10, -3) utawa (5, 6) minangka produk paling dhuwur.
Kanggo mikir babagan saben kombinasi unsur lan ngerteni produke minangka pendekatan sing bodho. Yen produk pasangan saiki luwih gedhe tinimbang produk maksimal sing dipikolehi nganti saiki, nganyari produk maksimal. Print komponen saka produk pungkasan pungkasan.
Solusi ing ndhuwur, ing ngendi n minangka jumlah input, nduweni kerumitan wektu O (n2) lan ora njupuk papan maneh.
18. Carane ngalih kabeh nul Uploaded kanggo mburi
Pindhah kabeh nol ing array integer nganti pungkasan. Jawaban kudu ngindhari nggunakake spasi konstan lan njaga urutan relatif saka komponen array.
Input: {1,2,3,0,8,0,4,7}
Output bakal dadi {1,2,3,8,4,7,0,0}
Sijine unsur ing posisi kasedhiya ing ngisor iki ing Uploaded yen unsur saiki ora nul. Isi kabeh indeks sing isih ana karo 0 yen kabeh item array wis diproses.
Solusi sadurunge nduweni kompleksitas wektu O(n), ing ngendi n yaiku ukuran input.
19. Cara ngurutake array karo rong entri sing diuripake ing siji operasi.
Urut array ing wektu linear diwenehi loro item swapped lan array karo kabeh unsur disusun ing urutan munggah. Pretend yen larik ora ana duplikat.
Input: = [1,9,3,4,7,2] utawa [9,3,7,2,1,4] utawa [2,4,1,7,3,9]
Output: = [1,2,3,4,7,9]
Diwiwiti karo unsur kaloro ing array, tujuane kanggo mbandhingake saben unsur karo sing sadurunge. Posisi regejegan disimpen kanthi njupuk rong pointer, x, lan y.
Nganyari x menyang indeks unsur sadurunge lan y menyang indeks unsur saiki yen mantan luwih gedhe tinimbang sing terakhir. Nganyari y menyang indeks saka unsur saiki yen dadi metu sing unsur sadurungé luwih saka unsur saiki.
Pungkasan, ganti unsur ing indeks x lan y yen wis rampung ngolah saben pasangan unsur jejer.
Amarga kasunyatan manawa cara kasebut mung nindakake scan siji saka input array ukuran n, kerumitan wektu kasebut yaiku O (n). Ora ana kamar tambahan sing dibutuhake kanggo solusi kasebut.
20. Carane gabungke loro susunan diurutake ing panggonan.
Gabungake item array X[] lan Y[]—loro larik sing diurutake kanthi ukuran m lan n saben—kanthi njaga urutan sing diurutake, yaiku, kanthi ngisi X[] karo unsur paling cilik m pisanan lan ngisi Y[] kanthi unsur sing isih ana.
Yen unsur ing array X[] wis ana ing posisi sing bener (yaiku, unsur sing paling cilik ing antarane unsur sing isih ana), ora digatekake; digunakake, ngganti karo unsur paling cilik, kang uga dadi anggota pisanan Y []. Kanggo nahan urutan sing diurut sawise ngganti, transfer unsur kasebut (saiki ing Y [0]) menyang lokasi sing tepat ing Y [].
Ukuran array pisanan yaiku m lan ukuran array kapindho yaiku n, lan kerumitan wektu yaiku O (mn).
21. Kepiye cara ngatur maneh susunan barang kanthi ganti posisi dhuwur lan ngisor?
Ngatur maneh array integer supaya saben anggota sakteruse luwih gedhe tinimbang unsur sadurunge lan ing ngisor iki. Nganggep array ora kalebu unsur duplikat.
Ngurutake array utawa nggunakake spasi tambahan ora perlu kanggo pendekatan sing efektif. Rencana kasebut, kanggo miwiti, anggota nomer loro saka array lan munggah loro kanggo saben pengulangan loop.
Ganti komponen yen unsur pungkasan ngluwihi sing pisanan. Ing vena sing padha, ngalih loro item yen unsur ing ngisor iki luwih gedhe tinimbang unsur saiki. Kita bakal entuk array sing dikarepake sing tundhuk karo watesan sing ditemtokake ing kesimpulan saka daur ulang.
22. Carane ngganti saben unsur saka Uploaded tanpa nggunakake operator divisi karo produk saben unsur ing Uploaded?
Tanpa nggunakake operator divisi, ngganti saben unsur ing array integer karo produk saka kabeh unsur liyane.
Ing wektu linier lan papan sing tetep, kita bisa nggunakake rekursi kanggo ngatasi masalah iki. Ngetung rekursif produk saben unsur ing subarray tengen lan ngliwati produk subarray kiwa minangka paramèter fungsi minangka gagasan.
Kompleksitas wektu yaiku O(n).
23. Golek unsur oddest ing larik ing wektu logaritmik
Diwenehi larik integer kang kabeh nanging siji anggota duwe malah nomer kedadean, masalah kanggo nemtokake sepira kaping unsur siji iki katon. Temokake unsur sing kedadeyan aneh ing wektu logaritmik lan papan sing tetep yen unsur sing padha dumadi ing pasangan ing larik lan ora bakal ana luwih saka rong conto unsur tartamtu ing saurutan.
Operasi XOR ngidini kita ngatasi masalah iki ing wektu linear. Tujuane kanggo XOR saben unsur ing array. Mung unsur kedadean aneh tetep sawise unsur malah kedadean mbatalake siji liyane.
Masalah iki malah bisa ditanggulangi ing wektu O(log(n)).
24. Carane njaluk unsur ageng sakteruse kanggo saben unsur ing Uploaded bunder?
Elemen sabanjure sing luwih gedhe kanggo saben unsur ing array integer bunder kudu ditemokake. Integer sing luwih gedhe pisanan sawise unsur x ing array minangka unsur sing luwih gedhe saka unsur kasebut.
Saka tengen ngiwa, kita bisa ngoperasikake item array. Tujuane kanggo daur ulang kanggo saben unsur x nganti tumpukan kosong utawa ana unsur sing luwih dhuwur ing ndhuwur. Setel unsur luwih gedhe sabanjure x kanggo katon ing ndhuwur tumpukan nalika iku.
25. Temokake count inversi array?
Temokake jumlah total inversions saka array. Pasangan I j) diarani inversi saka array A yen I j) lan (A[i] > A[j]). Kita kudu ngetung saben pasangan kasebut ing larik.
Ngetung kabeh anggota array sing kurang saka sisih tengen lan nambah asil menyang output minangka pendekatan sing gampang.
Solusi iki nduweni kompleksitas O(n2), ing ngendi n yaiku ukuran input.
26. Apa Masalah Jeblugan Banyu Udan?
Nemokake paling banyu sing bisa kepepet ing pesawat tartamtu saka bar karo jembaré siji unit saben dikenal minangka "jebakan curah udan" Jeksa Agung bisa ngetokake.
Tujuane kanggo nemtokake bar paling dhuwur sing bisa diselehake ing sisih kiwa lan tengen saben bar. Minimal bar sing ana ing sisih kiwa lan tengen, kurang dhuwure bar saiki, yaiku jumlah banyu sing disimpen ing ndhuwur saben bar.
kesimpulan
Dibandhingake karo topik struktur data liyane, array luwih gampang. Kanggo ngrampungake pitakonan wawancara array, sampeyan kudu duwe pangerten dhasar babagan array.
Sampeyan kudu nyemak sacara ekstensif dhasar array, kalebu operasi array (saka ngumumake / nggawe array kanggo ngakses / ngowahi item array), uga konsep pemrograman kaya loop, rekursi, lan operator dhasar supaya bisa mangsuli pitakonan wawancara array. Kenali masalah kasebut kanthi lengkap.
Sampeyan kudu njaluk klarifikasi yen sampeyan duwe pitakon. Coba mbagi masalah dadi bagean sing luwih bisa diatur. Priksa manawa sampeyan duwe algoritma ing pikiran sadurunge sampeyan miwiti program; tulis utawa gambarake ing diagram alur. banjur miwiti nulis kode.
Ninggalake a Reply