Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหารายการที่ซ้ำกันจากรายการองค์ประกอบใน Python


สมมติว่าเรามีรายการองค์ประกอบที่เรียกว่า nums ขนาด n + 1 ซึ่งถูกเลือกจากช่วง 1, 2, ..., n อย่างที่เราทราบกันดีอยู่แล้วว่าโดยหลักการของหลุมพรางนั้นจะต้องมีการซ้ำซ้อน เราต้องหาที่ซ้ำกัน เป้าหมายของเราคือค้นหาภารกิจในเวลา O(n) และพื้นที่คงที่

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[2,1,4,3,5,4] ผลลัพธ์จะเป็น 4

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • q :=ผลรวมขององค์ประกอบทั้งหมดที่มีอยู่ใน nums

  • n :=ขนาดของ nums

  • v :=ชั้นของ ((n - 1)*(n)/2)

  • ส่งคืน q - v

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

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

อินพุต

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

ผลลัพธ์

4