Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm hai số trong danh sách có tổng bằng k trong Python


Cho danh sách nums và số k, kiểm tra xem có tồn tại hai số khác nhau trong danh sách có tổng bằng k không. Số có thể âm hoặc 0.

Ví dụ, nums = [45, 18, 9, 13, 12], k = 31, đầu ra True vì 18+13=31.

Các bước giải quyết (dùng tập hợp):

  • temp_set := tập hợp rỗng.
  • Duyệt từng num trong nums:
    • Nếu num trong temp_set, trả về True.
    • Thêm k - num vào temp_set.
  • Trả về False.

Ví dụ minh họa

class Solution:
    def solve(self, nums, k):
        temp_set = set()
        for num in nums:
            if num in temp_set:
                return True
            temp_set.add(k - num)
        return False

ob = Solution()
nums = [45, 18, 9, 13, 12]
k = 31
print(ob.solve(nums, k))

Đầu vào

[45, 18, 9, 13, 12], 31

Đầu ra

True