在Python中从1到n的n + 1个数字中查找重复元素的程序

假设我们有一个称为数字的列表,其长度为n +1。这些数字是从范围1、2,...,n中选取的。众所周知,使用信鸽原理,必须有一个副本。我们必须找到并退还。

因此,如果输入类似于[2,1,4,3,3],则输出将为3

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

  • l:= nums的大小

  • 温度:= l *(l-1)/ 2

  • temp_sum:=所有元素的总和

  • 返回(temp_sum-temp)

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

示例

class Solution:
   def solve(self, nums):
      l = len(nums)
      temp = l*(l-1)/2
      temp_sum = sum(nums)
      return temp_sum-temp
ob = Solution()print(ob.solve([2, 1, 4, 3, 3]))

输入项

[2, 1, 4, 3, 3]

输出结果

3
猜你喜欢