程序可计算差异大于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