检查是否可以排列数组中的元素满足Python中的给定条件
假设我们有一个名为nums的数组。我们必须检查是否有可能重新排列num的元素,使其符合条件-
因此,如果输入像nums=[8,-4,4,-8],那么输出将为True,就好像我们为i=0排列像[-4,-8,4,8]这样的数组一样,对于i=1,nums[2*0+1]=2*(-4)=-8nums[2*1+1]=2*4=8
示例
让我们看下面的实现以更好地理解-
from collections import defaultdict
def solve(nums):
freq = defaultdict(int)
for item in nums:
freq[item] += 1
for item in sorted(nums, key = abs):
if freq[item] == 0:
continue
if freq[2 * item] == 0:
return False
freq[item] -= 1
freq[2 * item] -= 1
return True
nums = [8, -4, 4, -8]
print(solve(nums))输入值
[8, -4, 4, -8]输出结果
True
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短