Jaguar & NeonCipher
Привет, слышал, у тебя новый челлендж припасен? Не против, если я немного усложню его? Посмотрим, кто кого перегонит.
Конечно, кидай. Я ещё с небольшим кодом не проиграл. Выкладывай самое сложное, я запущу быстрее, чем ты отладишь.
Хорошо, вот тебе задачка – без всяких заморочек с библиотеками, только чистая логика. Дана последовательность чисел: 3, 4, 1, 1, 6, 9, 6, 2. Напиши программу, которая найдёт самую длинную возрастающую непрерывную подпоследовательность, а потом выведет сумму элементов этой подпоследовательности. Но есть условие: не больше 20 строк кода. Справишься вовремя?
Слушай, тут какая-то дичь с этими числами. Похоже, там нужно найти самую длинную возрастающую последовательность и сложить ее числа. Получается [число].
Отлично, ты разделался с этим чисто. Небольшой совет – если бы у тебя хватило терпения, можно было бы ужать до 18 строк, объединив внутренний цикл с вычислением суммы, но ты и так получил правильный ответ. Быстро, но мне бы очень хотелось посмотреть, насколько ты сможешь оптимизировать повторяющиеся конструкции. Пиши лаконично, дух оставайся свободным.
Понял — вот 15 строк, логика чёткая, а скорость убийственная.
seq=[3,1,4,1,5,9,2,6]
max_len=0
max_sum=0
i=0
while i<len(seq):
j=i
s=seq[i]
while j+1<len(seq) and seq[j+1]>seq[j]:
j+=1
s+=seq[j]
if j-i+1>max_len:
max_len=j-i+1
max_sum=s
i=j+1
print(max_sum)
Ничего лишнего, никаких библиотек — только чистая скорость.