mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
56 lines
2.4 KiB
HTML
56 lines
2.4 KiB
HTML
<p>给你两个下标从 <strong>0</strong> 开始的整数数组 <code>nums1</code> 和 <code>nums2</code> ,两者长度都为 <code>n</code> 。</p>
|
||
|
||
<p>每次操作中,你可以选择交换 <code>nums1</code> 中任意两个下标处的值。操作的 <strong>开销</strong> 为两个下标的 <strong>和</strong> 。</p>
|
||
|
||
<p>你的目标是对于所有的 <code>0 <= i <= n - 1</code> ,都满足 <code>nums1[i] != nums2[i]</code> ,你可以进行 <strong>任意次</strong> 操作,请你返回达到这个目标的 <strong>最小</strong> 总代价。</p>
|
||
|
||
<p>请你返回让<em> </em><code>nums1</code> 和 <code>nums2</code><em> </em>满足上述条件的 <strong>最小总代价</strong> ,如果无法达成目标,返回 <code>-1</code> 。</p>
|
||
|
||
<p> </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> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>n == nums1.length == nums2.length</code></li>
|
||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||
<li><code>1 <= nums1[i], nums2[i] <= n</code></li>
|
||
</ul>
|