כתיבת what בסיבוכיות זמן ריצה קטנה יותר

נתונות השיטות הסטטיות הבאות:

java
Loading...

כתבו את השיטה what כך שתבצע את מה שביצעה בסיבוכיות זמן ריצה קטנה יותר.

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

אילוצים:
  • המערך a מלא במספרים שלמים (חיוביים בלבד)
דוגמה 1:
קלט:
a = [1, 2, 3, 4],
num = 6
פלט:
true

הסבר: תת-המערך [2, 4] נותן סכום 6

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

הסבר: תת-המערך [0] נותן סכום 0

דוגמה 3:
קלט:
a = [5, 3, 1],
num = 10
פלט:
false

הסבר: אין תת-מערך שסכומו 10

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

הסבר: אין תת-מערך שסכומו 5

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

הסבר: ישנם כמה תתי-מערכים שסכומם 3

דוגמה 6:
קלט:
a = [1, 1, 1, 1],
num = 3
פלט:
true

הסבר: כל תת-מערך של 3 אלמנטים רצופים נותן סכום 3

דוגמה 7:
קלט:
a = [10],
num = 10
פלט:
true

הסבר: המערך עצמו הוא תת-מערך שסכומו 10

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

הסבר: המערך עצמו הוא תת-מערך שסכומו 15

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

קלט:

a = [1, 2, 3, 4],
num = 6

הפלט המבוקש:

true