一个 Python 程序从 1 到 n 的 n+1 个数字中找出重复的元素
假设我们有一个名为 nums 的长度为 n + 1 的数字列表。这些数字是从范围 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
广告