Почему у практически идентичных условий разная скорость проверки?

Я сидел на leetcode и обратил внимание, что скорость работы моего решения и решения от платформы сильно отличается, хотя код практически идентичен за исключением условия.

Например вот мой цикл из решения
for i in range(len(nums)):
    for j in range(i+1, len(nums)):
        if nums[i] + nums[j] == target:
            return [i, j]


А это решение платформы
for i in range(len(nums)):
    for j in range(i+1, len(nums)):
        if nums[j] == target - nums[i]:
            return [i, j]

они практически похожи за исключением условия, а разница в скорости работы значительная. Расскажите как это работает под капотом у python
  • Вопрос задан
  • 537 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Могу предположить, что интерпретатор питона не пересчитывает во внутреннем цикле значение target - nums[i], поскольку оно во внутреннем цикле не меняется.
А значение nums[i] + nums[j] надо пересчитывать каждый раз.
Ответ написан
@Jack444
Так логично, чем меньше значение тем быстрее его можно проитерировать и сравнить, это не только в питоне а в целом во всех языках должно быстрее работать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы