一個 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
廣告