У вас решение за O(N^2), когда как можно сделать решение за O(N). Тут не в питоне дело, а в плохом алгоритме.
Надо идти с конца и поддерживать стек убывающих значений температур. При обработке следующего дня надо из стека вынимать значения, пока они меньше или равны текущего. В конце надо положить в стек текущее значение (чтобы считать дельты, надо добавлять пары значение, номер дня).
Это работает за линию, потому что каждое число один раз кладется в стек и максимум один раз из него удаляется. Этот алгоритм работает за счет того, что мы поддерживаем в стеке только те дни в конце, которые теоретически могли бы быть ответом для какого-то дня (самый левый с большей температурой). Это ровно те дни, которые теплее всех предыдущих дней в конце массива. Если текущий день имеет более высокую температуру, чем что-то в стеке, то это число в стеке уже никогда ни для кого левее ответом не станет. Потому что текущий день находится раньше но имеет более высокую температуру.
Я не совсем питонист, но вот примерный код:
def days_till_warming(T):
counts = []
stack = []
for i, curr_temp in enumerate(reversed(T)):
while len(stack)>0 and stack[-1][0] <= curr_temp:
stack.pop()
delta = i - stack[-1][1] if len(stack) > 0 else 0
stack.append([curr_temp, i])
counts.append(delta)
return list(reversed(counts))