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

Chương trình tìm mục trùng lặp từ danh sách các phần tử bằng Python

Giả sử chúng ta có một danh sách các phần tử được gọi là num có kích thước n + 1, chúng được chọn từ phạm vi 1, 2, ..., n. Như chúng ta đã biết, theo 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 bản sao. Ở đây mục tiêu của chúng tôi là tìm nhiệm vụ trong O (n) thời gian và không gian không đổi.

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

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

  • q:=tổng của tất cả các phần tử có trong nums

  • n:=kích thước của nums

  • v:=tầng của ((n - 1) * (n) / 2)

  • trả về q - v

Ví dụ

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

def solve(nums):
   q = sum(nums)
   n = len(nums)
   v = (n - 1) * (n) // 2
   return q - v

nums = [2,1,4,3,5,4]
print(solve(nums))

Đầu vào

[2,1,4,3,5,4]

Đầu ra

4