mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
87 lines
4.2 KiB
HTML
87 lines
4.2 KiB
HTML
<p>给你一个整数数组 <code>nums</code> 和两个整数 <code>cost1</code> 和 <code>cost2</code> 。你可以执行以下 <strong>任一</strong> 操作 <strong>任意</strong> 次:</p>
|
||
|
||
<ul>
|
||
<li>从 <code>nums</code> 中选择下标 <code>i</code> 并且将 <code>nums[i]</code> <strong>增加</strong> <code>1</code> ,开销为 <code>cost1</code>。</li>
|
||
<li>选择 <code>nums</code> 中两个 <strong>不同</strong> 下标 <code>i</code> 和 <code>j</code> ,并且将 <code>nums[i]</code> 和 <code>nums[j]</code> 都 <strong>增加</strong> <code>1</code> ,开销为 <code>cost2</code> 。</li>
|
||
</ul>
|
||
|
||
<p>你的目标是使数组中所有元素都 <strong>相等</strong> ,请你返回需要的 <strong>最小开销</strong> 之和。</p>
|
||
|
||
<p>由于答案可能会很大,请你将它对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 后返回。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>nums = [4,1], cost1 = 5, cost2 = 2</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>15</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>执行以下操作可以使数组中所有元素相等:</p>
|
||
|
||
<ul>
|
||
<li>将 <code>nums[1]</code> 增加 1 ,开销为 5 ,<code>nums</code> 变为 <code>[4,2]</code> 。</li>
|
||
<li>将 <code>nums[1]</code> 增加 1 ,开销为 5 ,<code>nums</code> 变为 <code>[4,3]</code> 。</li>
|
||
<li>将 <code>nums[1]</code> 增加 1 ,开销为 5 ,<code>nums</code> 变为 <code>[4,4]</code> 。</li>
|
||
</ul>
|
||
|
||
<p>总开销为 15 。</p>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong><span class="example-io">nums = [2,3,3,3,5], cost1 = 2, cost2 = 1</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>6</span></p>
|
||
|
||
<p><b>解释:</b></p>
|
||
|
||
<p>执行以下操作可以使数组中所有元素相等:</p>
|
||
|
||
<ul>
|
||
<li>将 <code>nums[0]</code> 和 <code>nums[1]</code> 同时增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[3,4,3,3,5]</code> 。</li>
|
||
<li>将 <code>nums[0]</code> 和 <code>nums[2]</code> 同时增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[4,4,4,3,5]</code> 。</li>
|
||
<li>将 <code>nums[0]</code> 和 <code>nums[3]</code> 同时增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[5,4,4,4,5]</code> 。</li>
|
||
<li>将 <code>nums[1]</code> 和 <code>nums[2]</code> 同时增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[5,5,5,4,5]</code> 。</li>
|
||
<li>将 <code>nums[3]</code> 增加 1 ,开销为 2 ,<code>nums</code> 变为 <code>[5,5,5,5,5]</code> 。</li>
|
||
</ul>
|
||
|
||
<p>总开销为 6 。</p>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 3:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>nums = [3,5,3], cost1 = 1, cost2 = 3</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>4</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>执行以下操作可以使数组中所有元素相等:</p>
|
||
|
||
<ul>
|
||
<li>将 <code>nums[0]</code> 增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[4,5,3]</code> 。</li>
|
||
<li>将 <code>nums[0]</code> 增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[5,5,3]</code> 。</li>
|
||
<li>将 <code>nums[2]</code> 增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[5,5,4]</code> 。</li>
|
||
<li>将 <code>nums[2]</code> 增加 1 ,开销为 1 ,<code>nums</code> 变为 <code>[5,5,5]</code> 。</li>
|
||
</ul>
|
||
|
||
<p>总开销为 4 。</p>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||
<li><code>1 <= nums[i] <= 10<sup>6</sup></code></li>
|
||
<li><code>1 <= cost1 <= 10<sup>6</sup></code></li>
|
||
<li><code>1 <= cost2 <= 10<sup>6</sup></code></li>
|
||
</ul>
|