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