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

โปรแกรมหาตัวเลขซ้ำจาก n+1 ตัวเลขที่อยู่ในช่วง 1 ถึง n ใน Python

สมมติว่ามีรายการตัวเลขชื่อ 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