Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm phần tử trùng lặp từ n + 1 số từ 1 đến n trong Python

Giả sử chúng ta có một danh sách các số được gọi là num có độ dài n + 1. Các số này được chọn từ dãy 1, 2, ..., n. Như chúng ta đã biết, sử dụng nguyên tắc chuồng bồ câu, phải có một bản sao. Chúng tôi phải tìm ra điều đó và trả lại.

Vì vậy, nếu đầu vào là [2, 1, 4, 3, 3], thì đầu ra sẽ là 3

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • l:=kích thước của nums
  • temp:=l * (l-1) / 2
  • temp_sum:=tổng của tất cả các phần tử tính bằng nums
  • return (temp_sum - tạm thời)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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]))

Đầu vào

[2, 1, 4, 3, 3]

Đầu ra

3