mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
43 lines
1.9 KiB
HTML
43 lines
1.9 KiB
HTML
<p>你有 <code>k</code> 个背包。给你一个下标从 <strong>0</strong> 开始的整数数组 <code>weights</code> ,其中 <code>weights[i]</code> 是第 <code>i</code> 个珠子的重量。同时给你整数 <code>k</code> 。</p>
|
||
|
||
<p>请你按照如下规则将所有的珠子放进 <code>k</code> 个背包。</p>
|
||
|
||
<ul>
|
||
<li>没有背包是空的。</li>
|
||
<li>如果第 <code>i</code> 个珠子和第 <code>j</code> 个珠子在同一个背包里,那么下标在 <code>i</code> 到 <code>j</code> 之间的所有珠子都必须在这同一个背包中。</li>
|
||
<li>如果一个背包有下标从 <code>i</code> 到 <code>j</code> 的所有珠子,那么这个背包的价格是 <code>weights[i] + weights[j]</code> 。</li>
|
||
</ul>
|
||
|
||
<p>一个珠子分配方案的 <strong>分数</strong> 是所有 <code>k</code> 个背包的价格之和。</p>
|
||
|
||
<p>请你返回所有分配方案中,<strong>最大分数</strong> 与 <strong>最小分数</strong> 的 <strong>差值</strong> 为多少。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre><b>输入:</b>weights = [1,3,5,1], k = 2
|
||
<b>输出:</b>4
|
||
<b>解释:</b>
|
||
分配方案 [1],[3,5,1] 得到最小得分 (1+1) + (3+1) = 6 。
|
||
分配方案 [1,3],[5,1] 得到最大得分 (1+3) + (5+1) = 10 。
|
||
所以差值为 10 - 6 = 4 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre><b>输入:</b>weights = [1, 3], k = 2
|
||
<b>输出:</b>0
|
||
<b>解释:</b>唯一的分配方案为 [1],[3] 。
|
||
最大最小得分相等,所以返回 0 。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= k <= weights.length <= 10<sup>5</sup></code></li>
|
||
<li><code>1 <= weights[i] <= 10<sup>9</sup></code></li>
|
||
</ul>
|