מכפלה מקסימלית של שלשה

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

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

אילוצים:
  • 3 ≤ arr.length
  • המערך arr המלא במספרים שלמים אך לא אפסים.
דוגמה 1:
קלט:
arr = [-4, 1, -8, 9, 6]
פלט:
-4	-8	9
288

הסבר: המכפלה המקסימלית מתקבלת מהשלשה 9, -8, -4 שמכפלתם היא 288.

דוגמה 2:
קלט:
arr = [1, 10, 2, 6, 5, 3]
פלט:
5	6	10
300

הסבר: המכפלה המקסימלית מתקבלת מהשלשה 10, 6, 5 שמכפלתם היא 300.

דוגמה 3:
קלט:
arr = [-10, -10, 5, 2]
פלט:
-10	-10	5
500

הסבר: המכפלה המקסימלית מתקבלת מהשלשה -10, -10, 5 שמכפלתם היא 500.

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

הסבר: המכפלה המקסימלית מתקבלת מהשלשה 1, 2, 3 שמכפלתם היא 6.

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

הסבר: המכפלה המקסימלית מתקבלת מהשלשה -1, -2, -3 שמכפלתם היא -6.

דוגמה 6:
קלט:
arr = [10, 3, 5, 6, 20]
פלט:
6	10	20
1200

הסבר: המכפלה המקסימלית מתקבלת מהשלשה 10, 6, 20 שמכפלתם היא 1200.

דוגמה 7:
קלט:
arr = [1, -4, 3, -6, 7, 0]
פלט:
-4	-6	7
168

הסבר: המכפלה המקסימלית מתקבלת מהשלשה 7, 3, -4 שמכפלתם היא 168.

דוגמה 8:
קלט:
arr = [-1, -2, -3]
פלט:
-2	-3	-1
-6

הסבר: המכפלה המקסימלית מתקבלת מהשלשה -1, -2, -3 שמכפלתם היא -6.

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

קלט:

arr = [-4, 1, -8, 9, 6]

הפלט המבוקש:

-4	-8	9
288