נתון מערך חד-ממדי arr המלא במספרים שלמים אך לא אפסים, בו יש למצוא שלשה של מספרים (לאו דווקא סמוכים זה לזה) שהמכפלה שלהם היא המקסימלית. יש להדפיס את שלשת המספרים האלו ולהחזיר את מכפלתם.
השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.
3 ≤ arr.lengtharr המלא במספרים שלמים אך לא אפסים.arr = [-4, 1, -8, 9, 6]
-4 -8 9 288
הסבר: המכפלה המקסימלית מתקבלת מהשלשה 9, -8, -4 שמכפלתם היא 288.
arr = [1, 10, 2, 6, 5, 3]
5 6 10 300
הסבר: המכפלה המקסימלית מתקבלת מהשלשה 10, 6, 5 שמכפלתם היא 300.
arr = [-10, -10, 5, 2]
-10 -10 5 500
הסבר: המכפלה המקסימלית מתקבלת מהשלשה -10, -10, 5 שמכפלתם היא 500.
arr = [1, 2, 3]
2 1 3 6
הסבר: המכפלה המקסימלית מתקבלת מהשלשה 1, 2, 3 שמכפלתם היא 6.
arr = [-1, -2, -3, -4]
-3 -2 -1 -6
הסבר: המכפלה המקסימלית מתקבלת מהשלשה -1, -2, -3 שמכפלתם היא -6.
arr = [10, 3, 5, 6, 20]
6 10 20 1200
הסבר: המכפלה המקסימלית מתקבלת מהשלשה 10, 6, 20 שמכפלתם היא 1200.
arr = [1, -4, 3, -6, 7, 0]
-4 -6 7 168
הסבר: המכפלה המקסימלית מתקבלת מהשלשה 7, 3, -4 שמכפלתם היא 168.
arr = [-1, -2, -3]
-2 -3 -1 -6
הסבר: המכפלה המקסימלית מתקבלת מהשלשה -1, -2, -3 שמכפלתם היא -6.
קלט:
arr = [-4, 1, -8, 9, 6]
הפלט המבוקש:
-4 -8 9 288