Разница во времени выполнения на Leet Code - PullRequest
0 голосов
/ 02 июля 2018

Практикуя на Leet Code, я придумал свое решение, которое было почти идентично решению с лучшим временем выполнения. Однако разница во времени бега была значительной.

Итак, в качестве теста я сделал заявку с тем же точным кодом, что и лучшее решение, и время выполнения увеличилось, а уменьшилось.

Проблема состоит в том, чтобы определить, есть ли в данном списке дубликаты. Ниже приведено лучшее решение, опубликованное с продолжительностью работы 41 мс. Мое время отправки с тем же кодом составляет 82 мс.

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """

        if nums == []:
            return False

        s = set(nums)
        return len(s) != len(nums)

https://leetcode.com/problems/contains-duplicate/description/

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

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 02 июля 2018

Время выполнения всегда зависит от введенного кода. Некоторые сайты имеют случайный код для генерации тестовых случаев. Это может быть связано с тем, что в вашем случае время работы больше; Попробуйте запустить его несколько раз, а затем сравните шаблон, если он такой же, то вы можете сообщить об этом на сайт.

0 голосов
/ 04 февраля 2019

У меня была такая же проблема с решением Java. Я реализовал практически идентичное решение с самым быстрым временем выполнения, и выполнение одного и того же кода 3 раза дало мне 3 разных результата времени выполнения: 88 мс, 104 мс и 74 мс. Хотя разница во времени выполнения не так существенна, она сильно повлияла на мой процент по сравнению с другими онлайн-заявками. (от лучше чем 23% представлений в 104ms до лучше чем 94% в 74ms). Если вы сосредотачиваетесь на том, где находится ваше решение по сравнению с другими материалами, я бы взял его с небольшим количеством соли, поскольку оно может сильно варьироваться в зависимости от небольших изменений времени выполнения.

0 голосов
/ 02 июля 2018

40 мс слишком мала, чтобы воспринимать всерьез. Время выполнения Python запускается так долго. Архитектурные изменения, которые LeetCode мог внести в свой тестовый костюм, интерпретатор Python и т. Д., Наиболее вероятно вызывают подозрения на такое несоответствие производительности. В конце концов, вы отправили свое решение сегодня, в то время как другое решение было отправлено некоторое время назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...