בהינתן מערך של מספרים שלמים nums ומספר שלם target יש להחזיר את אורכו של התת-מערך הרציף במערך nums הקטן ביותר (מבחינת מספר תאים בתת-מערך) שסכום איבריו גדול ממש מ-target.
לכל תת-מערך כזה יש להדפיס את האינדקסים של גבולותיו. וכן להדפיס את האינדקסים של הגבולות של התת-מערך שאורכו הוא הקטן ביותר.
אם אין תת-מערך שסכום איבריו גדול מ-target יש להחזיר 0 ולהדפיס שאין תת-מערך כזה.
השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.
nums = [2, 6, 1, 9, 7, 3, 1, 4, 1, 8], target = 15
Subarray found [0-3] Subarray found [1-3] Subarray found [2-4] Subarray found [3-4] Subarray found [4-8] Subarray found [5-9] Smallest Subarray found [3-4] 2
הסבר: ישנם כמה תת-מערכים שהסכום של איבריהם גדול מ-15. התת מערך באורך המינמלי הוא זה המתחיל באינדקס 3 ומסתיים ב-4, כלומר באורך 2.
nums = [2, 6, 1, 9, 7, 3, 1, 4, 1, 8], target = 100
No Subarray exists 0
הסבר: אין תת-מערך שסכום איבריו גדול מ-100.
nums = [1, 2, 3, 4, 5], target = 9
Subarray found [0-3] Subarray found [1-4] Subarray found [2-4] Smallest Subarray found [2-4] 3
הסבר: התת-מערך [3, 4, 5] באורך 3 הוא הקטן ביותר שסכומו גדול מ-9.
nums = [5, 1, 3, 5, 10, 7, 4, 9, 2, 8], target = 15
Subarray found [0-4] Subarray found [1-4] Subarray found [2-4] Subarray found [3-5] Subarray found [4-5] Subarray found [5-7] Subarray found [6-9] Subarray found [7-9] Smallest Subarray found [4-5] 2
הסבר: התת-מערך [10, 7] באורך 2 הוא הקטן ביותר שסכומו גדול מ-15.
nums = [20, 18, 4, 5, 3], target = 17
Subarray found [0-0] Subarray found [1-1] Smallest Subarray found [0-0] 1
הסבר: התת-מערך [20] באינדקס 0 בעצמו סכומו גדול מ-17, לכן הוא התת-מערך הקטן ביותר באורך 1.
nums = [1, 4, 16, 22, 5, 7, 8, 9, 10], target = 20
Subarray found [0-2] Subarray found [1-3] Subarray found [2-3] Subarray found [3-3] Subarray found [4-7] Subarray found [5-7] Subarray found [6-8] Smallest Subarray found [3-3] 1
הסבר: התת-מערך [22] באינדקס 3 בעצמו סכומו גדול מ-20, לכן הוא התת-מערך הקטן ביותר באורך 1.
nums = [1, 2, 3], target = 15
No Subarray exists 0
הסבר: אין תת-מערך שסכומו גדול מ-15, לכן התוצאה היא 0.
nums = [3, 1, 7, 11, 2, 9, 8, 21, 6], target = 20
Subarray found [0-3] Subarray found [1-4] Subarray found [2-5] Subarray found [3-5] Subarray found [4-7] Subarray found [5-7] Subarray found [6-7] Subarray found [7-7] Smallest Subarray found [7-7] 1
הסבר: התת-מערך [21] באינדקס 7 בעצמו סכומו גדול מ-20, לכן הוא התת-מערך הקטן ביותר באורך 1.
קלט:
nums = [2, 6, 1, 9, 7, 3, 1, 4, 1, 8], target = 15
הפלט המבוקש:
Subarray found [0-3] Subarray found [1-3] Subarray found [2-4] Subarray found [3-4] Subarray found [4-8] Subarray found [5-9] Smallest Subarray found [3-4] 2