mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
52 lines
2.4 KiB
HTML
52 lines
2.4 KiB
HTML
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>
|
||
|
||
<p>一次操作中,你可以选择 <code>nums</code> 中满足 <code>0 <= i < nums.length - 1</code> 的一个下标 <code>i</code> ,并将 <code>nums[i]</code> 和 <code>nums[i + 1]</code> 替换为数字 <code>nums[i] & nums[i + 1]</code> ,其中 <code>&</code> 表示按位 <code>AND</code> 操作。</p>
|
||
|
||
<p>请你返回 <strong>至多</strong> <code>k</code> 次操作以内,使 <code>nums</code> 中所有剩余元素按位 <code>OR</code> 结果的 <strong>最小值</strong> 。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>nums = [3,5,3,2,7], k = 2
|
||
<b>输出:</b>3
|
||
<b>解释:</b>执行以下操作:
|
||
1. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [1,3,2,7] 。
|
||
2. 将 nums[2] 和 nums[3] 替换为 (nums[2] & nums[3]) ,得到 nums 为 [1,3,2] 。
|
||
最终数组的按位或值为 3 。
|
||
3 是 k 次操作以内,可以得到的剩余元素的最小按位或值。</pre>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>nums = [7,3,15,14,2,8], k = 4
|
||
<b>输出:</b>2
|
||
<b>解释:</b>执行以下操作:
|
||
1. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [3,15,14,2,8] 。
|
||
2. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [3,14,2,8] 。
|
||
3. 将 nums[0] 和 nums[1] 替换为 (nums[0] & nums[1]) ,得到 nums 为 [2,2,8] 。
|
||
4. 将 nums[1] 和 nums[2] 替换为 (nums[1] & nums[2]) ,得到 nums 为 [2,0] 。
|
||
最终数组的按位或值为 2 。
|
||
2 是 k 次操作以内,可以得到的剩余元素的最小按位或值。
|
||
</pre>
|
||
|
||
<p><strong class="example">示例 3:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>nums = [10,7,10,3,9,14,9,4], k = 1
|
||
<b>输出:</b>15
|
||
<b>解释:</b>不执行任何操作,nums 的按位或值为 15 。
|
||
15 是 k 次操作以内,可以得到的剩余元素的最小按位或值。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||
<li><code>0 <= nums[i] < 2<sup>30</sup></code></li>
|
||
<li><code>0 <= k < nums.length</code></li>
|
||
</ul>
|