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

โปรแกรมค้นหาตัวเลขสองตัวใด ๆ ในรายการที่รวมกันเป็น k ใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และเรามีอีกหมายเลข k เราต้องตรวจสอบว่าตัวเลขสองตัวใดที่อยู่ในรายการรวมกันเป็น k หรือตอนนี้ ห้ามใช้องค์ประกอบเดียวกันสองครั้ง และตัวเลขอาจเป็นลบหรือ 0

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[45, 18, 9, 13, 12], k =31 ผลลัพธ์จะเป็น True เนื่องจาก 18 + 13 =31

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • temp_set:=ชุดใหม่
  • สำหรับแต่ละ num เป็น nums ทำ
    • ถ้า num อยู่ใน temp_set แล้ว
      • คืนค่า True
    • เพิ่ม (k-num) ลงใน temp_set
  • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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))

อินพุต

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

ผลลัพธ์

True