Оптимизировал алгоритм и дошел до последней части. У меня есть массив целых чисел, как это:
[1, 1, 2, 5, 0, 5, 3, 1, 1]
Мои требования следующие:
- input: количество целых чисел для суммирования по
- максимальная сумма должна состоять из целых чисел рядом друг с другом
- если целое число имеет значение 0, сумма в диапазоне будет недействительной
- возвращается максимальная сумма целых чисел и индекс каждого целого числа
Ожидаемые результаты:
Учитывая ввод 2 (2 разыскиваемых) с массивом, как упомянуто, для этого следует вернуть
[8, [5, 6]] где 8 - сумма целых чисел с индексами 5 и 6
Учитывая ввод 3 (3 разыскиваемых) с массивом, как упомянуто, для этого следует вернуть
[9, [5, 6, 7]] где 9 - сумма целых чисел в индексах 5, 6 и 7 (обратите внимание, что даже если целые числа в индексах 3, 4, 5 имеют более высокую сумму, результат является недействительным из-за индекса 4 будучи 0)
В настоящее время я справляюсь с этим, делая много циклов, но мне было интересно, есть ли у кого-нибудь лучший способ добиться этого. В настоящее время я выбираю язык программирования C # - поэтому я был бы признателен, если бы возможные ответы были на C #. Любое использование linq и других необычных математических функций в порядке, если это самый быстрый способ.