Medium
You are given two integer arrays nums1 and nums2 of size n.
You can perform the following two operations any number of times on these two arrays:
- Swap within the same array: Choose two indices
iandj. Then, choose either to swapnums1[i]andnums1[j], ornums2[i]andnums2[j]. This operation is free of charge. - Swap between two arrays: Choose an index
i. Then, swapnums1[i]andnums2[i]. This operation incurs a cost of 1.
Return an integer denoting the minimum cost to make nums1 and nums2 identical. If this is not possible, return -1.
Example 1:
Input: nums1 = [10,20], nums2 = [20,10]
Output: 0
Explanation:
- Swap
nums2[0] = 20andnums2[1] = 10.nums2becomes[10, 20].- This operation is free of charge.
nums1andnums2are now identical. The cost is 0.
Example 2:
Input: nums1 = [10,10], nums2 = [20,20]
Output: 1
Explanation:
- Swap
nums1[0] = 10andnums2[0] = 20.nums1becomes[20, 10].nums2becomes[10, 20].- This operation costs 1.
- Swap
nums2[0] = 10andnums2[1] = 20.nums2becomes[20, 10].- This operation is free of charge.
nums1andnums2are now identical. The cost is 1.
Example 3:
Input: nums1 = [10,20], nums2 = [30,40]
Output: -1
Explanation:
It is impossible to make the two arrays identical. Therefore, the answer is -1.
Constraints:
2 <= n == nums1.length == nums2.length <= 8 * 1041 <= nums1[i], nums2[i] <= 8 * 104