Last active
November 11, 2018 19:48
-
-
Save kupp1/d817fa800a3ee77bf45a6a755cff80f1 to your computer and use it in GitHub Desktop.
UniLecs #138. Максимальная последовательность по модулю
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Задача: есть массив целых чисел. В нем необходимо определить подмножество с максимальным модулем суммы чисел входящих в него. | |
| Входные данные: arr - массив целых чисел, размер массива от 1 до 10^4. | |
| Вывод: подмножество чисел исходного массива, ктр образуют множество с максмимальным модулем суммы. Если есть несколько множеств с одинаковым модулем суммы, то выводите любое. | |
| Пример: [-1, 2, -1, 3, -4] | |
| Answer: { -1, -1, -4 } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def task138(seq: list): | |
| """ | |
| Логично, что сложение чисел разных знаков нам никак не | |
| поможет: модуль от этого только уменьшится. | |
| Разделяем последовтельность на отрицательные и | |
| положительные числа. Смотрим, модуль суммы какой | |
| последовательности больше и выводим эту последовательность. | |
| """ | |
| neg = [n for n in seq if n < 0] | |
| pos = [n for n in seq if n > 0] | |
| if len(neg) == 0 and len(pos) == 0: | |
| return [0] | |
| if abs(sum(neg)) >= sum(pos): | |
| return neg | |
| else: | |
| return pos |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment