Menu
CoddyTech

First Missing Positive

ניתן לך מערך לא ממוין של מספרים שלמים nums. החזר את המספר השלם החיובי הקטן ביותר (1 או יותר) שאינו מופיע ב־nums. המערך עשוי להכיל מספרים שליליים, אפסים, ערכים שחוזרים על עצמם וערכים גדולים בהרבה מאורכו.

פונקציה

firstMissingPositive(nums: integer-array) → integer
numsinteger-array
המספרים השלמים הלא ממוינים, שעשויים לחזור על עצמם ולהיות שליליים, אפס או גדולים מאוד
מחזירהinteger
המספר השלם החיובי הקטן ביותר שחסר ב-nums

אילוצים

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • הערכים אינם מופיעים בסדר מסוים וייתכן שיחזרו על עצמם.

דוגמאות

קלט
nums = [5, -2, 1, 3, 2, 9]
פלט
4
הסבר
1, 2 ו-3 נמצאים כולם במערך ו-4 לא, לכן התשובה היא 4. ל-5 ול-9 אין חשיבות ברגע שחסר ערך קטן יותר.
challenge icon

שאלת המשך

האם תוכל למצוא את התשובה בזמן O(n) תוך שימוש בזיכרון נוסף של O(1) בלבד?

איפוס הקוד
def firstMissingPositive(nums):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

nums = [5, -2, 1, 3, 2, 9]

הפלט הצפוי

4