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

โปรแกรมค้นหาจำนวนเต็มที่น้อยที่สุดที่หายไปในอาร์เรย์ใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องหาจำนวนบวกที่หายไปตัวแรก กล่าวอีกนัยหนึ่งคือจำนวนบวกต่ำสุดที่ไม่มีอยู่ในอาร์เรย์ อาร์เรย์สามารถประกอบด้วยตัวเลขที่ซ้ำกันและค่าลบได้เช่นกัน

ดังนั้น หากอินพุตเท่ากับ nums =[0,3,1] เอาต์พุตจะเป็น 2

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

  • nums :=ชุดที่มีจำนวนบวกทั้งหมดอยู่ใน nums

  • ถ้า nums เป็นโมฆะแล้ว

    • กลับ 1

  • สำหรับฉันอยู่ในช่วง 1 ถึงขนาด nums + 2 ทำ

    • ถ้าฉันไม่อยู่ใน nums แล้ว

    • กลับมา

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

ตัวอย่าง

class Solution:
   def solve(self, nums):
      nums = set(num for num in nums if num > 0)

      if not nums:
         return 1
      for i in range(1, len(nums) + 2):
         if i not in nums:
            return i
ob = Solution()
nums = [0,3,1]
print(ob.solve(nums))

อินพุต

[0,3,1]

ผลลัพธ์

2