3133。最小數組末尾
難度:中
主題: 位元操作
給定兩個整數 n 和 x。您必須建構一個大小為n 的正 整數nums 數組,其中每個0 大於 nums[i],nums所有元素位元與運算的結果為x。
回傳nums[n - 1]的最小值可能值
.範例1:
範例2:
範例 3:
約束:
提示:
解:
我們需要建構一個大小為 n 的正整數陣列 nums,其中每個連續元素都大於前一個元素。 nums 中所有元素的位元與應產生 x。我們被要求找到 nums[n-1] 的最小可能值。
詳細內容如下:
位元操作洞察
:我們可以觀察到 nums[i] 應該透過將 x 與整數 0, 1, ..., n-1 合併來建構。這將有助於確保位元與結果產生 x,因為我們以 x 為基數開始。建立陣列元素
:每個元素都可以被認為是 x 與某個整數的合併,我們的目標是保持 x 的位元完整。我們從整數中填入額外的位元以獲得遞增的數字,同時將 AND 結果保持為 x。合併策略
:要找出最小的nums[n-1],我們只需要將x與n-1合併。在這種情況下,合併意味著如果 x 中的任何位元為 1,則它仍為 1。我們使用 n-1 中的位來添加任何所需的附加位,而不更改 x 中設定的位。
讓我們用 PHP 實作這個解:3133。最小數組結尾
<?php /** * @param Integer $n * @param Integer $x * @return Integer */ function minEnd($n, $x) { ... ... ... /** * go to ./solution.php */ } // Example 1 echo minimumArrayEnd(3, 4) . "\n"; // Output: 6 // Example 2 echo minimumArrayEnd(2, 7) . "\n"; // Output: 15 ?>
Pemeriksaan Bit dan Tetapan:
Kekangan Gelung:
Keputusan:
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:
以上是最小數組末尾的詳細內容。更多資訊請關注PHP中文網其他相關文章!