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

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

สมมติว่าเรามีรายการตัวเลข nums ต้องหาจำนวนเต็มบวกตัวแรกที่หายไป (lowest missing positive) อาร์เรย์อาจมีค่าซ้ำและค่าลบได้

ตัวอย่าง: nums = [0, 3, 1] ผลลัพธ์ 2

ขั้นตอนการแก้ปัญหา (Hash Set)

  1. สร้างเซตจากค่าบวกใน nums: nums = set(num for num in nums if num > 0)
  2. หากเซตว่าง คืนค่า 1
  3. วนลูป i จาก 1 ถึง len(nums) + 1:
    • หาก i not in nums คืนค่า i

ตัวอย่างโค้ด Python

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))  # Output: 2

อินพุต

[0, 3, 1]

เอาต์พุต

2