สมมติว่าเรามีรายการตัวเลข nums ต้องหาจำนวนเต็มบวกตัวแรกที่หายไป (lowest missing positive) อาร์เรย์อาจมีค่าซ้ำและค่าลบได้
ตัวอย่าง: nums = [0, 3, 1] ผลลัพธ์ 2
ขั้นตอนการแก้ปัญหา (Hash Set)
- สร้างเซตจากค่าบวกใน
nums:nums = set(num for num in nums if num > 0) - หากเซตว่าง คืนค่า 1
- วนลูป
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