使用 Python 查找双对数组的程序

假设我们有一个长度为偶数的被调用的 nums 数组,我们必须检查是否可以将其重新排序为 nums[2*i + 1] = 2*nums[2*i] for each 0 < = i < nums 的大小/2。

因此,如果输入类似于 nums = [4,-2,2,-4],那么输出将为 True。

示例

让我们看看以下实现以获得更好的理解 -

from collections import Counter
def solve(nums):
   cnt = Counter(nums)
   for x in sorted(cnt, key=abs):
      if cnt[x] > cnt[2 * x]:
         return False
      cnt[2 * x] -= cnt[x]
   return True

nums = [4,-2,2,-4]
print(solve(nums))

输入

[6,0,8,2,1,5]
输出结果
True