mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
40 lines
2.8 KiB
HTML
40 lines
2.8 KiB
HTML
<p>给你一个长度为 <code>n</code> 的整数数组 <code>nums</code> 和一个整数 <code>numSlots</code> ,满足<code>2 * numSlots >= n</code> 。总共有 <code>numSlots</code> 个篮子,编号为 <code>1</code> 到 <code>numSlots</code> 。</p>
|
||
|
||
<p>你需要把所有 <code>n</code> 个整数分到这些篮子中,且每个篮子 <strong>至多</strong> 有 2 个整数。一种分配方案的 <strong>与和</strong> 定义为每个数与它所在篮子编号的 <strong>按位与运算</strong> 结果之和。</p>
|
||
|
||
<ul>
|
||
<li>比方说,将数字 <code>[1, 3]</code> 放入篮子 <strong><em><code>1</code></em></strong> 中,<code>[4, 6]</code> 放入篮子 <strong><em><code>2</code></em></strong> 中,这个方案的与和为 <code>(1 AND <strong><em>1</em></strong>) + (3 AND <strong><em>1</em></strong>) + (4 AND <em><strong>2</strong></em>) + (6 AND <em><strong>2</strong></em>) = 1 + 1 + 0 + 2 = 4</code> 。</li>
|
||
</ul>
|
||
|
||
<p>请你返回将 <code>nums</code> 中所有数放入<em> </em><code>numSlots</code> 个篮子中的最大与和。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre><b>输入:</b>nums = [1,2,3,4,5,6], numSlots = 3
|
||
<b>输出:</b>9
|
||
<b>解释:</b>一个可行的方案是 [1, 4] 放入篮子 <em><strong>1</strong></em> 中,[2, 6] 放入篮子 <strong><em>2</em></strong> 中,[3, 5] 放入篮子 <strong><em>3</em></strong> 中。
|
||
最大与和为 (1 AND <strong><em>1</em></strong>) + (4 AND <strong><em>1</em></strong>) + (2 AND <strong><em>2</em></strong>) + (6 AND <strong><em>2</em></strong>) + (3 AND <strong><em>3</em></strong>) + (5 AND <em><strong>3</strong></em>) = 1 + 0 + 2 + 2 + 3 + 1 = 9 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre><b>输入:</b>nums = [1,3,10,4,7,1], numSlots = 9
|
||
<b>输出:</b>24
|
||
<b>解释:</b>一个可行的方案是 [1, 1] 放入篮子 <em><strong>1</strong></em> 中,[3] 放入篮子 <em><strong>3</strong></em> 中,[4] 放入篮子 <strong><em>4</em></strong> 中,[7] 放入篮子 <strong><em>7</em></strong> 中,[10] 放入篮子 <strong><em>9</em></strong> 中。
|
||
最大与和为 (1 AND <strong><em>1</em></strong>) + (1 AND <strong><em>1</em></strong>) + (3 AND <strong><em>3</em></strong>) + (4 AND <strong><em>4</em></strong>) + (7 AND <strong><em>7</em></strong>) + (10 AND <strong><em>9</em></strong>) = 1 + 1 + 3 + 4 + 7 + 8 = 24 。
|
||
注意,篮子 2 ,5 ,6 和 8 是空的,这是允许的。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>n == nums.length</code></li>
|
||
<li><code>1 <= numSlots <= 9</code></li>
|
||
<li><code>1 <= n <= 2 * numSlots</code></li>
|
||
<li><code>1 <= nums[i] <= 15</code></li>
|
||
</ul>
|