3133. Penamat Tatasusunan Minimum
Kesukaran: Sederhana
Topik: Manipulasi Bit
Anda diberi dua integer n dan x. Anda perlu membina tatasusunan positif nombor integer saiz n di mana untuk setiap 0 <= i < n - 1, nums[i 1] ialah lebih besar daripada nums[i], dan hasil operasi bitwise AND antara semua elemen nums ialah x.
Kembalikan nilai minimum yang mungkin bagi nombor[n - 1].
Contoh 1:
Contoh 2:
Contoh 3:
Kekangan:
Petunjuk:
Penyelesaian:
Kita perlu membina nombor tatasusunan bilangan bulat positif saiz n, di mana setiap elemen berturut-turut adalah lebih besar daripada sebelumnya. Bitwise AND semua elemen dalam nums harus menghasilkan x. Kami diminta untuk mencari nilai minimum yang mungkin bagi nums[n-1].
Berikut ialah pecahan:
Bit Manipulation Insight: Kita boleh perhatikan bahawa nums[i] harus dibina dengan menggabungkan x dengan integer 0, 1, ..., n-1. Ini akan membantu memastikan hasil bitwise AND menghasilkan x kerana kita bermula dengan asas x.
Membina Elemen Tatasusunan: Setiap elemen boleh dianggap sebagai x digabungkan dengan beberapa integer, dan kami menyasarkan untuk memastikan bit x kekal utuh. Kami mengisi bit tambahan daripada integer untuk mendapatkan nombor yang semakin meningkat sambil mengekalkan hasil AND sebagai x.
Strategi Penggabungan: Untuk mencari nombor minimum[n-1], kita hanya perlu menggabungkan x dengan n-1. Penggabungan dalam konteks ini bermakna jika sebarang bit dalam x ialah 1, ia kekal 1. Kami menggunakan bit daripada n-1 untuk menambah sebarang bit tambahan yang diperlukan tanpa mengubah bit yang ditetapkan dalam x.
Mari laksanakan penyelesaian ini dalam PHP: 3133. Penamat Tatasusunan Minimum
Penjelasan:
Pemeriksaan Bit dan Tetapan:
- Kami menyemak setiap bit ans (bermula dari x), dan jika bit adalah 0 dalam ans, kami melihat kepada bit yang sepadan dalam k (iaitu n-1).
- Jika bit dalam k ialah 1, kami menetapkan bit dalam ans kepada 1. Proses ini memastikan kenaikan minimum dalam nilai sambil mengekalkan bit yang ditetapkan dalam x.
Kekangan Gelung:
- Kami mengulangi setiap kedudukan bit sehingga maksimum yang dikira (kMaxBit), memastikan kami meliputi bit yang diperlukan daripada kedua-dua x dan n.
Keputusan:
- Nilai akhir ans ialah nilai minimum yang mungkin untuk nums[n-1] yang memenuhi syarat.
Kerumitan:
Penyelesaian ini menghasilkan angka minimum yang diingini[n-1] sambil mengekalkan sifat yang diperlukan.
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 Penamat Tatasusunan Minimum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!