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

โปรแกรมค้นหา kth จำนวนบวกที่ขาดหายไปในอาร์เรย์ใน Python


สมมติว่าเรามีอาร์เรย์ที่เรียกว่า nums โดยมีค่าการเรียงลำดับเชิงบวกที่เพิ่มขึ้นอย่างเคร่งครัด และยังมีจำนวนเต็ม k ด้วย เราต้องหาจำนวนเต็มบวก k ที่หายไปจากอาร์เรย์นี้

ดังนั้น หากอินพุตเป็น nums =[1,2,4,8,12], k =6 ผลลัพธ์จะเป็น 10 เพราะตัวเลขที่หายไปคือ [3,5,6,7,9,10,11 ] เทอมที่ 6 คือ 10

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

  • nums :=ชุดใหม่จากองค์ประกอบที่มีอยู่ใน nums

  • นับ :=0

  • num :=1

  • ในขณะที่นับ

    • ถ้า num ไม่เป็น num แล้ว

      • นับ :=นับ + 1

    • ถ้านับเท่ากับ k แล้ว

      • ส่งคืนหมายเลข

    • num :=num + 1

  • ส่งคืนหมายเลข

ตัวอย่าง (Python)

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

def solve(nums, k):
   nums = set(nums)
   count = 0
   num = 1
   while count < k:
      if num not in nums:
         count += 1
      if count == k:
         return num
      num += 1
   return num

nums = [1,2,4,8,12]
k = 6
print(solve(nums, k))

อินพุต

[1,2,4,8,12], 6

ผลลัพธ์

10