נתון מערך חד ממדי לא ממוין a המלא במספרים שלמים ללא אפס!
יש להחזיר את אורכו של התת-מערך (הרציף) הארוך ביותר שכל איבריו הם לסירוגין מספר חיובי ומספר שלילי. וגם להדפיס את האינדקס ההתחלתי ואת האינדקס הסופי של התת-מערך המבוקש. אם יש במערך יותר מתת-מערך אחד באורך מקסימלי, יודפסו האינדקסים של התת-מערך הראשון מביניהם.
השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.
a = [-1, 1, -1, -5, 2, 2]
Starting index = 0 Ending index = 2 3
הסבר: תת-המערך הארוך ביותר עם מספרים מתחלפים הוא [2, -5, -1] מאינדקס 0 עד 2.
a = [3, 3, 2, -7, 2, 1, 1, -2, -2]
Starting index = 2 Ending index = 4 3
הסבר: תת-המערך הארוך ביותר עם מספרים מתחלפים הוא [1, 2, -7] מאינדקס 2 עד 4.
a = [1, 2, 3, 4, 5, 4]
Starting index = 0 Ending index = 0 1
הסבר: אין תת-מערך גדול מ-1 עם מספרים מתחלפים. כל איבר הוא תת-מערך באורך 1.
a = [1, -2, 3, -4, -5, 4, 2, -4, 6, -2]
Starting index = 0 Ending index = 3 4
הסבר: ישנם שני תת-מערכים באורך 4, הראשון מאינדקס 0 עד 3.
a = [1, -1, 1, -1, 1, -1, 1]
Starting index = 0 Ending index = 6 7
הסבר: כל המערך הוא תת-מערך מתחלף באורך 7.
a = [1, 2, -3, 4, -5, 6, -7, 8, -9]
Starting index = 1 Ending index = 8 8
הסבר: כל המערך הוא תת-מערך מתחלף באורך 8.
a = [10, -1, 2, -3, 4, -5, 6, -7, 8, -9, 10]
Starting index = 0 Ending index = 10 11
הסבר: כל המערך הוא תת-מערך מתחלף באורך 11.
a = [1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12]
Starting index = 0 Ending index = 11 12
הסבר: כל המערך הוא תת-מערך מתחלף באורך 12.
קלט:
a = [-1, 1, -1, -5, 2, 2]
הפלט המבוקש:
Starting index = 0 Ending index = 2 3