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

更新於: 06-Oct-2020

211 次瀏覽

啟動您的 職業生涯

完成課程以獲得認證

開始
廣告