برای لیست ورودی، لیست فرعی با بزرگترین مجموع ممکن بین آیتم های متوالی را به دست آورید. سپس این بزرگترین مجموع و همچنین ایندکس اولیه و نهایی لیست فرعی را در خروجی برگردانید.
مثال
big_sub([4, -3, 5, -7, 5]) ➞ [6 (sum), 0 (start), 2 (end)]
در این مثال لیست فرعی که بزرگترین مجموع را دارد برابر است با [4, -3, 5].
جمع اعضا = 6 و ایندکس شروع لیست فرعی برابر با 0 و ایندکس پایان برابر با 2 است.
نمونه ورودی و خروجی
big_sub([4, -3, 5, -7, 5]) ➞ [6, 0, 2]
big_sub([4, -3, -5, 7, 5]) ➞ [12, 3, 4]
big_sub([2, -3, 2, -3, 2]) ➞ [2, 4, 4]
نکات
- اگر بزرگترین جمع در چند بازه تکرار شود، موقعیت های شروع و پایان آخرین بازه را برگردانید.
- لیست همیشه دارای اعداد مثبت خواهد بود.
big_sub([4, -3, 5, -7, 5]) ➞ [6, 0, 2]
big_sub([4, -3, -5, 7, 5]) ➞ [12, 3, 4]
big_sub([2, -3, 2, -3, 2]) ➞ [2, 4, 4]
big_sub([4, 5, 6, -12, 4, 6, 8, -2, 4, -3, 2, 6, 5, 3, 3, -4, 3, -65, 34]) ➞ [39, 0, 14]
نظرات