用 Python 编写的程序,用于从元素列表中查找重复项

pythonserver side programmingprogramming更新于 2025/12/17 18:20:17

假设我们有一个名为 nums 的元素列表,大小为 n + 1,它们从范围 1、2、...、n 中选择。我们知道,根据鸽巢原理,一定有一个重复项。我们必须找到重复项。这里我们的目标是在 O(n) 时间和常数空间内找到任务。

因此,如果输入为 nums = [2,1,4,3,5,4],则输出为 4

为了解决这个问题,我们将遵循以下步骤 −

  • q := nums 中存在的所有元素的总和

  • n := nums 的大小

  • v := ((n - 1)*(n)/2) 的下限

  • 返回 q - v

示例

让我们看看下面的实现以便更好地理解

def solve(nums):
   q = sum(nums)
   n = len(nums)
   v = (n - 1) * (n) // 2
   return q - v

nums = [2,1,4,3,5,4]
print(solve(nums))

输入

[2,1,4,3,5,4]

输出

4

相关文章


有用资源