1. 解题思路
这一题由于是统一增加了一个位移,然后再删除了两个元素,因此我们将两个数组进行排序,则平移的距离必然为第一个array的前三个元素与第二个array的第一个元素的差之中的一个。
我们分别从小到大考察这三个值是否可以满足条件即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def minimumAddedInteger(self, nums1: List[int], nums2: List[int]) -> int:
nums1 = sorted(nums1)
nums2 = sorted(nums2)
def is_possible(d):
cnt = Counter(nums1)
for x in nums2:
if cnt[x-d] <= 0:
return False
cnt[x-d] -= 1
return True
for x in nums1[:3][::-1]:
d = nums2[0] - x
if is_possible(d):
return d
return
提交代码评测得到:耗时51ms,占用内存16.5MB。