用 Python 编写程序,从 1 到 n 的 n+1 个数字中查找重复元素

pythonserver side programmingprogramming更新于 2026/1/12 8:12:17

假设我们有一个长度为 n + 1 的数字列表,称为 nums。这些数字是从 1、2、...、n 范围内挑选出来的。众所周知,使用鸽巢原理,一定有一个重复项。我们必须找到并返回它。

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

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

  • l := nums 的大小
  • temp := l*(l-1) /2
  • temp_sum := nums 中所有元素的总和
  • 返回 (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

相关文章


有用资源