在Python中查找重复元素列表的程序

在Python中查找重复元素列表的程序

假设我们有一个大小为 n + 1 的元素列表 nums ,它们选自范围 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程