สมมติว่าเรามีรายการตัวเลขที่เรียกว่า 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