Created
November 10, 2018 18:54
-
-
Save superkiria/4242ab2af722d4277c326ac573a21fc4 to your computer and use it in GitHub Desktop.
This file contains 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 task_2(arr): | |
arr = arr.copy() # не хотим менять данный массив, поэтому делаем копию | |
arr.append(0) # добавляем 0, а то вдруг его нет в массиве | |
arr = sorted(arr) # сортируем, очень дорогая операция из-за неё решение работает в 10 раз медленне, чем третье моё решение | |
zero = arr.index(0) # определяем индекс нуля | |
if sum(arr[zero + 1:]) > abs(sum(arr[0:zero])): # сравниваем левую часть массива с правой и выводим нужную | |
return arr[zero + 1:] | |
else: | |
return arr[0:zero] | |
# тесты | |
test_set = ([-1, 2, -1, 3, -4], [1, 2, 1, 3, 4, -6], [-1, 0, 2], [1], [-1], [11, -1, -2, -3, -4], [10, -1, -2, -3, -4]) | |
for i in test_set: | |
print(i, " ::: ", task_2(i)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment