使用 Python 查找双对数组的程序
pythonserver side programmingprogramming更新于 2025/11/30 8:44:17
假设我们有一个名为 nums 的数组,其长度为偶数,我们必须检查是否可以按以下方式重新排序它:对于每个 0 <= i <,nums[2*i + 1] = 2*nums[2*i] nums/2 的大小。
因此,如果输入为 nums = [4,-2,2,-4],则输出将为 True。
为了解决这个问题,我们将遵循以下步骤 −
cnt := 包含 nums 中所有元素及其频率值的映射
对于按绝对值排序的排序列表 cnt 中的每个 x,执行
如果 cnt[x] > cnt[2 * x],然后
返回 False
cnt[2 * x] := cnt[2 * x] - cnt[x]
返回 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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

