Computer >> Máy Tính >  >> Lập trình >> Python

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

Giả sử chúng ta có một danh sách các số được gọi là num và chúng ta có một số khác k, chúng ta phải kiểm tra xem hai số bất kỳ có trong danh sách có cộng lại với nhau hay không. Các phần tử giống nhau không được sử dụng hai lần. Và các số có thể âm hoặc 0.

Vì vậy, nếu đầu vào giống như nums =[45, 18, 9, 13, 12], k =31, thì đầu ra sẽ là True, là 18 + 13 =31

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • temp_set:=một tập hợp mới
  • đối với mỗi num trong nums, thực hiện
    • nếu num ở trong temp_set, thì
      • trả về True
    • thêm (k-num) vào temp_set
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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