Был оптимизирован алгоритм и дошел до последней части. У меня есть массив целых чисел, как это:Самый быстрый способ найти максимальный диапазон сумм в int []
[1, 1, 2, 5, 0, 5, 3, 1, 1]
Мое требование заключаются в следующем:
- ввод: количество целых чисел, чтобы суммировать по
- максимальная сумма должна состоять из целых чисел рядом друг с другим
- , если целое число имеет значение 0 сумма в диапазоне будет недействительным
- максимальная сумма целых чисел и индекс каждого целого возвращается
Ожидаемые результаты:
Учитывая вход 2 (2 хотел) с массивом, как упомянуто должен для этого вернуться [8, [ 5, 6]], где 8 - сумма целых чисел в индексе 5 и 6
Приведенный ввод 3 (3 раза) с массивом, как указано выше, для возврата [9, [5, 6, 7]], где 9 - сумма целых чисел в индексах 5, 6 и 7 (заметим, что хотя целые числа в индексах 3, 4, 5 имеют более высокую сумму t он недействителен, потому что индекс 4 равен 0)
В настоящее время я управляю этим, выполняя много циклов, но задавался вопросом, есть ли у кого-то лучший способ достичь этого. Мой язык кодирования по выбору в настоящее время является C# - я бы поэтому хотел, если бы возможные ответы были на C#. Любое использование linq и других модных функций Math в порядке, если это самый быстрый способ.
это домашнее задание? –
Извините, я отправил ответ. По крайней мере, это не в C#. – 2010-02-17 18:01:42
Нет, это определенно не домашнее задание ... Я бы хотел, чтобы это было –