1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/让数组不相等的最小总代价 [minimum-total-cost-to-make-arrays-unequal].html
2022-12-14 18:41:02 +08:00

56 lines
2.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>给你两个下标从 <strong>0</strong>&nbsp;开始的整数数组&nbsp;<code>nums1</code>&nbsp;&nbsp;<code>nums2</code>&nbsp;,两者长度都为&nbsp;<code>n</code>&nbsp;</p>
<p>每次操作中,你可以选择交换 <code>nums1</code>&nbsp;中任意两个下标处的值。操作的 <strong>开销</strong>&nbsp;为两个下标的 <strong></strong>&nbsp;</p>
<p>你的目标是对于所有的 <code>0 &lt;= i &lt;= n - 1</code>&nbsp;,都满足&nbsp;<code>nums1[i] != nums2[i]</code>&nbsp;,你可以进行 <strong>任意次</strong>&nbsp;操作,请你返回达到这个目标的 <strong>最小</strong>&nbsp;总代价。</p>
<p>请你返回让<em>&nbsp;</em><code>nums1</code>&nbsp;<code>nums2</code><em>&nbsp;</em>满足上述条件的 <strong>最小总代价</strong> ,如果无法达成目标,返回&nbsp;<code>-1</code>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<b>输入:</b>nums1 = [1,2,3,4,5], nums2 = [1,2,3,4,5]
<b>输出:</b>10
<b>解释:</b>
实现目标的其中一种方法为:
- 交换下标为 0 和 3 的两个值,代价为 0 + 3 = 3 。现在 nums1 = [4,2,3,1,5] 。
- 交换下标为 1 和 2 的两个值,代价为 1 + 2 = 3 。现在 nums1 = [4,3,2,1,5] 。
- 交换下标为 0 和 4 的两个值,代价为 0 + 4 = 4 。现在 nums1 = [5,3,2,1,4] 。
最后,对于每个下标 i ,都有 nums1[i] != nums2[i] 。总代价为 10 。
还有别的交换值的方法,但是无法得到代价和小于 10 的方案。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<b>输入:</b>nums1 = [2,2,2,1,3], nums2 = [1,2,2,3,3]
<b>输出:</b>10
<b>解释:</b>
实现目标的一种方法为:
- 交换下标为 2 和 3 的两个值,代价为 2 + 3 = 5 。现在 nums1 = [2,2,1,2,3] 。
- 交换下标为 1 和 4 的两个值,代价为 1 + 4 = 5 。现在 nums1 = [2,3,1,2,2] 。
总代价为 10 ,是所有方案中的最小代价。
</pre>
<p><strong>示例 3</strong></p>
<pre>
<b>输入:</b>nums1 = [1,2,2], nums2 = [1,2,2]
<b>输出:</b>-1
<b>解释:</b>
不管怎么操作,都无法满足题目要求。
所以返回 -1 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>n == nums1.length == nums2.length</code></li>
<li><code>1 &lt;= n &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= nums1[i], nums2[i] &lt;= n</code></li>
</ul>