, например, [например [ 1,2,3,4] займет одну итерацию, в то время как [1,3,2,4] займет два, один, где взято 1,2, и одна, где 3,4 взят.
Но это упражнение просит вас «реализовать функцию count_rounds, которые принимают список в качестве параметра и возвращает количество раундов. Раунд. Заказ и количество раундов составляет 10^5. Тест (около 10 с) < /p>
Я попытался удалить элементы из списка, но я искренне не могу понять, как сделать его достаточно быстрым, чтобы пройти тест (около 10 с)
Текущая попытка: < /p>
Код: Выделить всё
def count_rounds(numbers):
n = len(numbers)
result = 0
x=1
while xnumbers[x]:
result+=1
except:
break
x+=1
return result+1
if __name__ == "__main__":
print(count_rounds([2, 5, 4, 1, 3])) # 4
print(count_rounds([1, 3, 2, 4])) # 2
print(count_rounds([4, 3, 2, 1])) # 4
print(count_rounds([1])) # 1
print(count_rounds([2, 1, 4, 7, 5, 3, 6, 8])) # 4
n = 10**5
numbers = list(reversed(range(1, n+1)))
print(count_rounds(numbers)) # 100000
Код: Выделить всё
3
2
4
1
4
100000
Подробнее здесь: https://stackoverflow.com/questions/793 ... -long-list
Мобильная версия