Rumah pembangunan bahagian belakang tutorial php XOR Maksimum untuk Setiap Pertanyaan

XOR Maksimum untuk Setiap Pertanyaan

Nov 10, 2024 pm 05:41 PM

Maximum XOR for Each Query

1829. XOR Maksimum untuk Setiap Pertanyaan

Kesukaran: Sederhana

Topik: Tatasusunan, Manipulasi Bit, Jumlah Awalan

Anda diberi diisih nombor tatasusunan bagi n integer bukan negatif dan integer maximumBit. Anda mahu melaksanakan pertanyaan berikut n kali:

  • Cari integer bukan negatif k < 2maximumBit supaya nums[0] XOR nums[1] XOR ... XOR nums[nums.length-1] XOR k ialah maksimum. k ialah jawapan kepada pertanyaan ith.
  • Alih keluar elemen terakhir daripada nombor tatasusunan semasa.

Kembalikan jawapan tatasusunan, dengan jawapan[i] ialah jawapan kepada pertanyaan ike.

Contoh 1:

  • Input: nums = [0,1,1,3], maximumBit = 2
  • Output: [0,3,2,3]
  • Penjelasan: Pertanyaan dijawab seperti berikut:
    • 1stpertanyaan pertama: nums = [0,1,1,3], k = 0 sejak 0 XOR 1 XOR 1 XOR 3 XOR 0 = 3.
    • 2nd pertanyaan: nums = [0,1,1], k = 3 sejak 0 XOR 1 XOR 1 XOR 3 = 3.
    • 3rd pertanyaan: nums = [0,1], k = 2 sejak 0 XOR 1 XOR 2 = 3.
    • 4th pertanyaan: nums = [0], k = 3 sejak 0 XOR 3 = 3.

Contoh 2:

  • Input: nums = [2,3,4,7], maximumBit = 3
  • Output: [5,2,6,5]
  • Penjelasan: Pertanyaan dijawab seperti berikut:
    • 1stpertanyaan pertama: nums = [2,3,4,7], k = 5 sejak 2 XOR 3 XOR 4 XOR 7 XOR 5 = 7.
    • 2nd pertanyaan: nums = [2,3,4], k = 2 sejak 2 XOR 3 XOR 4 XOR 2 = 7.
    • 3rd pertanyaan: nums = [2,3], k = 6 sejak 2 XOR 3 XOR 6 = 7.
    • 4th pertanyaan: nums = [2], k = 5 sejak 2 XOR 5 = 7.

Contoh 3:

  • Input: nombor = [0,1,2,2,5,7], maksimumBit = 3
  • Output: [4,3,6,4,6,7]

Kekangan:

  • bilangan panjang == n
  • 1 <= n <= 105
  • 1 <= maximumBit <= 20
  • 0 <= angka[i] < 2maksimumBit
  • nums​​​ diisih dalam susunan menaik.

Petunjuk:

  1. Perhatikan bahawa keputusan XOR maksimum yang mungkin adalah sentiasa 2(Bit maksimum) - 1
  2. Jadi jawapan untuk awalan ialah XOR awalan itu XORed dengan 2(maksimumBit)-1

Penyelesaian:

Kita perlu mengira XOR unsur dalam tatasusunan dengan cekap dan memaksimumkan hasilnya menggunakan nilai k supaya k kurang daripada 2^maximumBit. Berikut ialah pendekatan untuk menyelesaikan masalah ini:

Pemerhatian dan Pendekatan

  1. Memaksimumkan XOR:
    Nombor maksimum yang boleh kita XOR dengan sebarang jumlah awalan untuk bit maksimumBit ialah ( 2^{text{maximumBit}} - 1 ). Ini kerana XORing dengan nombor semua 1s (iaitu, 111...1 dalam binari) akan sentiasa memaksimumkan hasil.

  2. Pengiraan XOR Awalan:
    Daripada mengira semula XOR untuk setiap pertanyaan, kita boleh mengekalkan XOR terkumpul untuk keseluruhan tatasusunan. Memandangkan XOR mempunyai sifat A XOR B XOR B = A, mengalih keluar elemen terakhir daripada tatasusunan boleh dicapai dengan XOR mengeluarkan elemen itu daripada XOR terkumpul.

  3. Algoritma:

    • Kira XOR semua elemen dalam nombor pada mulanya. Jom panggil currentXOR ini.
    • Untuk setiap pertanyaan (dari yang terakhir hingga yang pertama):
      • Kira nilai optimum k untuk pertanyaan itu dengan XORing currentXOR dengan maxNum dengan maxNum = 2^maximumBit - 1.
      • Lampirkan k pada senarai keputusan.
      • Alih keluar elemen terakhir daripada nums dengan XORing keluar daripada currentXOR.
    • Senarai keputusan akan mengandungi jawapan dalam susunan terbalik, jadi terbalikkannya pada penghujungnya.

Mari laksanakan penyelesaian ini dalam PHP: 1829. XOR Maksimum untuk Setiap Pertanyaan






Penjelasan:

  1. Kira maxNum:

    • maxNum dikira sebagai 2^maximumBit - 1, iaitu nombor dengan semua 1 dalam binari untuk panjang bit yang ditentukan.
  2. Pengiraan XOR Awal:

    • Kami XOR semua elemen dalam nombor untuk mendapatkan XOR terkumpul (XOR semasa), mewakili XOR semua nombor dalam tatasusunan.
  3. Lelaran Ke Belakang:

    • Kami bermula dari elemen terakhir dalam nombor dan mengira XOR maksimum untuk setiap langkah:
      • currentXOR ^ maxNum memberikan k maksimum untuk keadaan semasa.
      • Lampirkan k untuk menjawab.
    • Kami kemudian XOR elemen terakhir nombor dengan currentXOR untuk "mengalihkannya" daripada jumlah XOR untuk lelaran seterusnya.
  4. Kembalikan Jawapan:

    • Memandangkan kami memproses senarai secara terbalik, jawapan akan mengandungi nilai dalam susunan terbalik, jadi senarai akhir sudah disusun dengan betul untuk keperluan kami.

Analisis Kerumitan

  • Kerumitan Masa: O(n), kerana kita mengira XOR awal dalam O(n) dan setiap pertanyaan diproses dalam masa yang tetap.
  • Kerumitan Angkasa: O(n), untuk menyimpan jawapan.

Kod ini cekap dan harus mengendalikan had atas kekangan dengan baik.

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:

  • LinkedIn
  • GitHub

Atas ialah kandungan terperinci XOR Maksimum untuk Setiap Pertanyaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1653
14
Tutorial PHP
1251
29
Tutorial C#
1224
24
Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Apr 06, 2025 am 12:02 AM

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Apakah Prinsip Reka Bentuk API REST? Apakah Prinsip Reka Bentuk API REST? Apr 04, 2025 am 12:01 AM

Prinsip reka bentuk Restapi termasuk definisi sumber, reka bentuk URI, penggunaan kaedah HTTP, penggunaan kod status, kawalan versi, dan benci. 1. Sumber harus diwakili oleh kata nama dan dikekalkan pada hierarki. 2. Kaedah HTTP harus mematuhi semantik mereka, seperti GET digunakan untuk mendapatkan sumber. 3. Kod status hendaklah digunakan dengan betul, seperti 404 bermakna sumber tidak wujud. 4. Kawalan versi boleh dilaksanakan melalui URI atau header. 5. Boots Operasi Pelanggan Hateoas melalui pautan sebagai tindak balas.

Bagaimanakah anda mengendalikan pengecualian dengan berkesan dalam PHP (cuba, menangkap, akhirnya, membuang)? Bagaimanakah anda mengendalikan pengecualian dengan berkesan dalam PHP (cuba, menangkap, akhirnya, membuang)? Apr 05, 2025 am 12:03 AM

Dalam PHP, pengendalian pengecualian dicapai melalui percubaan, menangkap, akhirnya, dan membuang kata kunci. 1) blok percubaan mengelilingi kod yang boleh membuang pengecualian; 2) Blok tangkapan mengendalikan pengecualian; 3) Akhirnya Blok memastikan bahawa kod itu sentiasa dilaksanakan; 4) Lemparan digunakan untuk membuang pengecualian secara manual. Mekanisme ini membantu meningkatkan keteguhan dan mengekalkan kod anda.

Apakah kelas tanpa nama di PHP dan kapan anda boleh menggunakannya? Apakah kelas tanpa nama di PHP dan kapan anda boleh menggunakannya? Apr 04, 2025 am 12:02 AM

Fungsi utama kelas tanpa nama dalam PHP adalah untuk membuat objek satu kali. 1. Kelas tanpa nama membenarkan kelas tanpa nama ditakrifkan secara langsung dalam kod, yang sesuai untuk keperluan sementara. 2. Mereka boleh mewarisi kelas atau melaksanakan antara muka untuk meningkatkan fleksibiliti. 3. Beri perhatian kepada prestasi dan kebolehbacaan kod apabila menggunakannya, dan elakkan berulang kali menentukan kelas tanpa nama yang sama.

Apakah perbezaan antara termasuk, memerlukan, termasuk_once, memerlukan_once? Apakah perbezaan antara termasuk, memerlukan, termasuk_once, memerlukan_once? Apr 05, 2025 am 12:07 AM

Dalam PHP, perbezaan antara termasuk, memerlukan, termasuk_once, memerlukan_once adalah: 1) termasuk menghasilkan amaran dan terus melaksanakan, 2) memerlukan menghasilkan ralat maut dan berhenti pelaksanaan, 3) termasuk_once dan memerlukan_once mencegah kemasukan berulang. Pilihan fungsi ini bergantung kepada kepentingan fail dan sama ada perlu untuk mencegah kemasukan pendua. Penggunaan rasional dapat meningkatkan kebolehbacaan dan pemeliharaan kod.

Terangkan jenis ralat yang berbeza dalam PHP (notis, amaran, ralat maut, ralat parse). Terangkan jenis ralat yang berbeza dalam PHP (notis, amaran, ralat maut, ralat parse). Apr 08, 2025 am 12:03 AM

Terdapat empat jenis kesilapan utama dalam PHP: 1.Notice: yang paling sedikit, tidak akan mengganggu program, seperti mengakses pembolehubah yang tidak ditentukan; 2. Amaran: Serius daripada notis, tidak akan menamatkan program, seperti tidak mengandungi fail; 3. FatalError: Yang paling serius, akan menamatkan program ini, seperti tidak memanggil fungsi; 4. ParseError: Kesalahan sintaks, akan menghalang program daripada dilaksanakan, seperti lupa untuk menambah tag akhir.

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

See all articles