用 Python 编写程序,计算差异大于目标的最大不同对数
pythonserver side programmingprogramming更新于 2026/2/2 8:12:17
假设我们有一个名为 nums 的数字列表和另一个值 target。我们必须找到最大对数,其中对于每对 i < j,i 和 j 不属于任何其他对,并且 |nums[i] - nums[j]| >= target。
因此,如果输入为 nums = [2, 4, 6, 10, 11],target = 5,则输出将为 2,因为我们可以得到对:(2, 6),(5, 10)
为了解决这个问题,我们将遵循以下步骤 −
- N := A 的大小
- 对列表 A 进行排序
- ans := 0
- j := N / 2
- 对于范围为 0 到 N / 2 的 i,执行
- 当 j < N 且 A[j] - A[i] < target 时,执行
- j := j + 1
- 若 j < N, 则
- ans := ans + 1
- j := j + 1
- 当 j < N 且 A[j] - A[i] < target 时,执行
- 返回 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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

