程序可计算差异大于Python中目标的不重复对的最大数量
假设我们有一个称为nums的数字列表和另一个值目标。我们必须找到最大对数,其中对于每个对i<j,i和j都没有其他对,并且|nums[i]-nums[j]|>=目标。
因此,如果输入类似于nums=[2,4,6,10,11],target=5,则输出将为2,因为我们可以获得对:(2,6),(5,10)
为了解决这个问题,我们将遵循以下步骤-
N:=A的大小
排序列表A
回答:=0
j:=N/2
对于0到N/2范围内的i
回答:=回答+1
j:=j+1
j:=j+1
而j<N和A[j]-A[i]<目标,
如果j<N,则
返回ans
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, A, target): N = len(A) A.sort() ans = 0 j = N >> 1 for i in range(N >> 1): while j < N and A[j] - A[i] < target: j += 1 if j < N: ans += 1 j += 1 return ans ob = Solution()nums = [2, 4, 6, 10, 11] target = 5 print(ob.solve(nums, target))
输入值
[2, 4, 6, 10, 11], 5
输出结果
2