Функция подсчета лидера чисел
Создать функцию которая рассчитывает число лидер. Число считается Лидером, если оно больше суммы всех элементов справа от него. Основные условия:
- Входящий список содержит не менее 3 элементов.
- Список входных чисел может содержать как положительные, так и отрицательные числа.
- Числа могут повторяться
- Возвращаемый список должен содержать числа в том же порядке, в котором они встречаются в исходном списке.
- Отсутствие элементов справа от числа расценивается как 0. Написал функцию, но она почему то не выводит последнее число и не выводит отрицательные числа.
def get_leaders(numbers: list) -> list:
new_list = []
for i in range(0, len(numbers)-1):
if numbers[i] == 0:
return []
if numbers[i] >= numbers[i+1] + numbers[i+1]:
new_list.append(numbers[i])
return new_list
print(get_leaders([1, 2, 3, 4, 0])) # == [4]
print(get_leaders([16, 17, 4, 3, 5, 2])) # == [17, 5, 2]
print(get_leaders([16, 8, 4, 2, 1])) # == [16, 8, 4, 2, 1]
print(get_leaders([0, 0, 0, 0])) # == []
print(get_leaders([-1, -1, -1, -1])) # == [-1, -1]
print(get_leaders([-45, -23, -16, -1, 1])) # == [1]
print(get_leaders([0, -1, -29, 3, 2])) # == [0, -1, 3, 2]
print(get_leaders([5, -2, 0])) # == [5]
Источник: Stack Overflow на русском