תרגול מדעי המחשב

החיובי הקטן החסר

מאתגר Java

המשימה

כתוב פעולה שמקבלת מערך של מספרים שלמים, לא ממוין, ומחזירה את המספר
החיובי הקטן ביותר שאינו נמצא בו.

המספרים במערך יכולים להיות שליליים, אפס או כפולים.
התשובה תמיד מספר חיובי, כלומר 1 ומעלה.

דוגמאות:
  [3, 4, -1, 1]     →  2
  [1, 2, 3]         →  4
  [-5, -2, 0]       →  1
  []                →  1
  [1, 1, 2]         →  3

הנחיות:
• דרך פשוטה: לבדוק ברצף האם 1 נמצא, האם 2 נמצא, וכן הלאה, עד שנמצא
  מספר שאינו במערך. לכל בדיקה — מעבר על המערך.
• התשובה לעולם לא תעלה על אורך המערך ועוד אחד. נסה להבין למה — זה
  מה שמבטיח שהלולאה עוצרת.
• פתרון יעיל יותר קיים, אבל אינו נדרש כאן.

```ds:array
{"title":"1 נמצא, 2 אינו נמצא — התשובה 2","items":["3","4","-1","1"]}
```

קוד הפתיחה

public class Main {

    public static int smallestMissing(int[] arr) {
        // כתוב את הפתרון כאן
        return 0;
    }

    public static void main(String[] args) {
        System.out.println(smallestMissing(new int[]{3, 4, -1, 1}));   // 2
        System.out.println(smallestMissing(new int[]{1, 2, 3}));       // 4
        System.out.println(smallestMissing(new int[]{-5, -2, 0}));     // 1
        System.out.println(smallestMissing(new int[]{}));              // 1
        System.out.println(smallestMissing(new int[]{1, 1, 2}));       // 3
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא המינימום ומקומו
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.