מציאת מספר כפול במערך

נתון מערך חד-ממדי לא ממוין a באורך n המלא במספרים שלמים שהם בטווח בין 1 ל- n-1.

יש להחזיר מספר שמופיע במערך יותר מפעם אחת.

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

אילוצים:

רמז - מותר לשנות את המערך. אין צורך להחזיר אותו למצבו המקורי.

המערך אינו null ואינו ריק, וכל המספרים בו הם בטווח בין 1 ל-n-1.

דוגמה 1:
קלט:
a = [2, 4, 5, 3, 5, 1]
פלט:
5

הסבר: המספר 5 מופיע פעמיים במערך.

דוגמה 2:
קלט:
a = [1, 1, 1, 2, 2, 2, 2]
פלט:
1 או 2

הסבר: המספרים 1 ו-2 מופיעים יותר מפעם אחת במערך.

דוגמה 3:
קלט:
a = [2, 3, 4, 2, 1]
פלט:
2

הסבר: המספר 2 מופיע פעמיים במערך.

דוגמה 4:
קלט:
a = [3, 3, 3, 3, 3]
פלט:
3

הסבר: המספר 3 מופיע חמש פעמים במערך.

דוגמה 5:
קלט:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9]
פלט:
9

הסבר: המספר 9 מופיע פעמיים במערך.

דוגמה 6:
קלט:
a = [5, 4, 3, 2, 1, 5]
פלט:
5

הסבר: המספר 5 מופיע פעמיים במערך.

דוגמה 7:
קלט:
a = [1, 2, 3, 4, 5, 6, 7, 8, 1]
פלט:
1

הסבר: המספר 1 מופיע פעמיים במערך.

דוגמה 8:
קלט:
a = [2, 2, 2, 2, 2, 2, 2, 2]
פלט:
2

הסבר: המספר 2 מופיע שמונה פעמים במערך.

Loading...
נשמרLn 1, Col 1

קלט:

a = [2, 4, 5, 3, 5, 1]

הפלט המבוקש:

5