ให้ลิสต์ nums และเป้าหมาย k ตรวจสอบว่ามี 2 ตัวเลข (ต่างดัชนี) ที่ผลรวม = k หรือไม่ (รองรับเลขลบและ 0)
ตัวอย่าง: nums=[45,18,9,13,12], k=31 → True (18+13)
อัลกอริธึม Hash Set (One Pass)
- เก็บ
k - numที่คาดหวังใน set - ถ้า num ปัจจุบันอยู่ใน set → เจอคู่แล้ว
การนำไปใช้
class Solution:
def solve(self, nums, k):
seen = set()
for num in nums:
if num in seen:
return True
seen.add(k - num)
return False
ob = Solution()
print(ob.solve([45,18,9,13,12], 31)) # True