بکندباز

برای لیست ورودی، لیست فرعی با بزرگترین مجموع ممکن بین آیتم های متوالی را به دست آورید. سپس این بزرگترین مجموع و همچنین ایندکس اولیه و نهایی لیست فرعی را در خروجی برگردانید.

مثال

big_sub([4, -3, 5, -7, 5]) ➞ [6 (sum), 0 (start), 2 (end)]
در این مثال لیست فرعی که بزرگترین مجموع را دارد برابر است با [4, -3, 5].
 جمع اعضا = 6 و ایندکس شروع لیست فرعی برابر با 0 و ایندکس پایان برابر با 2 است.

نمونه ورودی و خروجی

BigSub([4, -3, 5, -7, 5]) ➞ [6, 0, 2]

BigSub([4, -3, -5, 7, 5]) ➞ [12, 3, 4]

BigSub([2, -3, 2, -3, 2]) ➞ [2, 4, 4]

نکات

  • اگر بزرگترین جمع در چند بازه تکرار شود، موقعیت های شروع و پایان آخرین بازه را برگردانید.
  • لیست همیشه دارای اعداد مثبت خواهد بود.
Assert.Equal(new int[] { 6, 0, 2 }, Backendbaz.BigSub(new int[] { 4, -3, 5, -7, 5 }));
Assert.Equal(new int[] { 12, 3, 4 }, Backendbaz.BigSub(new int[] { 4, -3, -5, 7, 5 }));
Assert.Equal(new int[] { 2, 4, 4 }, Backendbaz.BigSub(new int[] { 2, -3, 2, -3, 2 }));
Assert.Equal(new int[] { 39, 0, 14 }, Backendbaz.BigSub(new int[] { 4, 5, 6, -12, 4, 6, 8, -2, 4, -3, 2, 6, 5, 3, 3, -4, 3, -65, 34 }));

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*