Rumah >pembangunan bahagian belakang >tutorial php >Cari Tatasusunan Biasa Awalan Dua Tatasusunan
2657. Cari Tatasusunan Biasa Awalan Dua Tatasusunan
Kesukaran: Sederhana
Topik: Tatasusunan, Jadual Hash, Manipulasi Bit
Anda diberi dua 0-diindeks pilih atur integer A dan B panjang n.
A tatasusunan biasa awalan bagi A dan B ialah tatasusunan C supaya C[i] sama dengan kiraan nombor yang hadir pada atau sebelum indeks i dalam kedua-dua A dan B.
Kembalikan tatasusunan biasa awalan A dan B.
Jujukan n integer dipanggil permutasi jika ia mengandungi semua integer dari 1 hingga n tepat sekali.
Contoh 1:
Contoh 2:
Kekangan:
Petunjuk:
Penyelesaian:
Kita boleh lelaran pada dua tatasusunan A dan B sambil menjejaki nombor yang telah berlaku pada atau sebelum indeks semasa dalam kedua-dua tatasusunan. Oleh kerana kedua-dua tatasusunan ialah pilih atur bagi set nombor yang sama, kita boleh menggunakan dua set cincang (atau tatasusunan) untuk menyimpan nombor yang telah muncul pada atau sebelum indeks semasa dalam kedua-dua tatasusunan. Untuk setiap indeks, kita boleh mengira nombor biasa yang telah muncul dalam kedua-dua tatasusunan sehingga titik itu.
Mari laksanakan penyelesaian ini dalam PHP: 2657. Cari Tatasusunan Biasa Awalan Dua Tatasusunan
<?php /** * @param Integer[] $A * @param Integer[] $B * @return Integer[] */ function findThePrefixCommonArray($A, $B) { ... ... ... /** * go to ./solution.php */ } // Example usage: $A = [1, 3, 2, 4]; $B = [3, 1, 2, 4]; print_r(findThePrefixCommonArray($A, $B)); // Output: [0, 2, 3, 4] $A = [2, 3, 1]; $B = [3, 1, 2]; print_r(findThePrefixCommonArray($A, $B)); // Output: [0, 1, 3] ?> <h3> Penjelasan: </h3> <ol> <li> <strong>Susun Kekerapan</strong>: Kami mengekalkan dua tatasusunan frekuensi, freqA dan freqB, di mana setiap indeks mewakili nombor dalam pilih atur. <ul> <li>Apabila kita menemui nombor dalam A[i] atau B[i], kita meningkatkan nilai yang sepadan dalam tatasusunan frekuensi.</li> </ul> </li> <li> <strong>Kiraan Biasa</strong>: Selepas mengemas kini tatasusunan kekerapan untuk kedua-dua A[i] dan B[i], kami menyemak setiap nombor jika ia telah muncul dalam kedua-dua tatasusunan sehingga indeks i. Jika ya, kami meningkatkan CommonCount.</li> <li> <strong>Keputusan</strong>: Kiraan biasa disimpan dalam tatasusunan hasil untuk setiap indeks.</li> </ol> <h3> Contoh Panduan: </h3> <p>Untuk input:<br> </p> <pre class="brush:php;toolbar:false">$A = [1, 3, 2, 4]; $B = [3, 1, 2, 4];
Output: [0, 2, 3, 4]
Ini harus berfungsi dalam kekangan yang diberikan dengan berkesan.
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Cari Tatasusunan Biasa Awalan Dua Tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!