Поиск первого дублированного элемента в линейном времени [дубликат]

Использование аргумента, обычно называемое self, не так сложно понять, как это необходимо? Или о том, почему прямо упоминать об этом? Это, я полагаю, является большим вопросом для большинства пользователей, которые ищут этот вопрос, или если это не так, у них, безусловно, будет тот же вопрос, что и в дальнейшем, изучая python. Я рекомендую им прочитать эти две блоги:

1: Использование self explain

Обратите внимание, что это не ключевое слово.

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

2: Почему у нас это так и почему мы не можем исключить его как аргумент, например Java, и вместо этого есть ключевое слово

. Еще одна вещь, которую я хотел бы добавить, - необязательный аргумент self позволяет мне объявлять статические методы внутри класса, не записывая self.

Примеры кода:

class MyClass():
    def staticMethod():
        print "This is a static method"

    def objectMethod(self):
        print "This is an object method which needs an instance of a class, and that is what self refers to"

PS: Это работает только в Python 3.x.

В предыдущих версиях вы должны явно добавить декоратор @staticmethod в противном случае аргумент self является обязательным.

21
задан templatetypedef 26 September 2013 в 00:30
поделиться

2 ответа

61
ответ дан Community 31 August 2018 в 12:03
поделиться

Добавление элементов отлично, вам просто нужно взять mod (%) промежуточной совокупности при вычислении суммы элементов и ожидаемой суммы. Для операции mod вы можете использовать что-то вроде 2n. Вы также должны зафиксировать значение после вычитания.

2
ответ дан Karoly Horvath 31 August 2018 в 12:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: