Саша Лукин

Саша Лукин

Живу в Лондоне, разрабатываю Android в Google, делаю обучающий контент.

Пікірлер

  • @user-rq7km6kp7o
    @user-rq7km6kp7o10 сағат бұрын

    Спасибо за задачку. Решил через словари, тоже компактненько получилось. Оцени=) ```python def getstr_foo(str1,result:int): dct = {} for i in range(len(str1)): dct[str1[i]] = dct.get(str1[i],0) + 1 if dct[str1[i]] > 1: result = len(dct) if result < len(dct) else result return getstr_foo(str1[1:], result) return result if result !=0 else len(dct) print(getstr_foo('abcbada', 0)) ```

  • @rybiizhir
    @rybiizhirКүн бұрын

    Вобщем чудес не бывает, братьь легко, записывать крайне сложно. Возможно под капотом шардинг идет с несколькими вложениями, 2 байта на общий список + 2 байта вложение, + 4 байта еще глуюже. Тогда переброска будет дешевле, а получение все так же близко к 1

  • @user-wt8cm7tb4l
    @user-wt8cm7tb4lКүн бұрын

    как стать художником ? рисовать больше - как стать музыкантом ? играть больше - как стать программистом ? программировать больше

  • @Activan1
    @Activan12 күн бұрын

    Саша возвращайся в Россию.

  • @Activan1
    @Activan12 күн бұрын

    Ты крут. Но ты часть логики перенес в set. Так можно было?

  • @zrxmax_
    @zrxmax_2 күн бұрын

    начинать вернее с середины, а не с угла

  • @LITRJIJI
    @LITRJIJI2 күн бұрын

    Спасибо

  • @zrxmax_
    @zrxmax_3 күн бұрын

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

  • @user-dr9vi5bz2n
    @user-dr9vi5bz2n4 күн бұрын

    Почему создаётся изначально 5 бакетов, когда начальная ёмкость хешсета 16?

  • @MattiWilkins-kf6cr
    @MattiWilkins-kf6cr6 күн бұрын

    очень вдохновляют такие кейсы! Еще я стараюсь следить за проектами Жени Давыдова, недавно вышел подкаст с ним на EL.together, чувак такие советы раздает!

  • @user-fy6dm6mw9y
    @user-fy6dm6mw9y6 күн бұрын

    Спасибо за полезное видео

  • @Mikhail_Zaitsev
    @Mikhail_Zaitsev7 күн бұрын

    элементарный алгоритм и первое что приходит в голову. Ну а первый вариант очевидно отвергается сразу. Я удивлён простотой.

  • @Hohmachik
    @Hohmachik7 күн бұрын

    В первом массиве тоже ответов несколько)) -1+8=7

  • @user-ev3gf2ew8y
    @user-ev3gf2ew8y7 күн бұрын

    А на операцию поиска числа в хэш-сете чё не надо ресурсов тратить вроде отдельного цикла? Типа написал такой 'if num in _set' и весь такой в белом?

  • @sashalukin
    @sashalukin7 күн бұрын

    kzread.info/dash/bejne/pISklpiilKjcnrA.html

  • @Hohmachik
    @Hohmachik8 күн бұрын

    Почему последний алгоритм работает за O(N)? Я не разбираюсь в подсчете продолжительности процессов и мне казалось, что добавление цикла увеличивает степень на 1, а тут как раз 2 цикла

  • @karfagen86
    @karfagen868 күн бұрын

    Грамотно объяснил, спасибо!

  • @appngo6374
    @appngo63748 күн бұрын

    Я на практике редко пользуюсь конструкцией while. В 1 проценте случаев) Можно еще решить вот так. Решение без скользящего окна. Хотя суть очень похожа. fun getMaxUniqueWithSet(input: String): Int { var maxSequence = 0 val set = mutableSetOf<Char>() input.forEach { c -> if (set.contains(c)) { if (set.size > maxSequence) { maxSequence = set.size } set.clear() } set.add(c) } return max(maxSequence, set.size) }

  • @user-ft2yu8vj3r
    @user-ft2yu8vj3r8 күн бұрын

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

  • @rusfungame
    @rusfungame8 күн бұрын

    У меня 4 года опыта в программировании, 3 года коммерции, чувствую себя таким джуном) Старший разработчик - джун.

  • @vilture5706
    @vilture570610 күн бұрын

    Алгоритм Дейкстры

  • @bobbob-rd7yz
    @bobbob-rd7yz10 күн бұрын

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

  • @Magomed-r
    @Magomed-r10 күн бұрын

    Было интересно

  • @uasite
    @uasite10 күн бұрын

    Откуда у вас эти стрОку, подстрОку? Ведь строкА, а значит строкУ, а не стрОку?

  • @user-yc8fh8ri6w
    @user-yc8fh8ri6w11 күн бұрын

    Я обязательно выживу......

  • @oArleo
    @oArleo11 күн бұрын

    Я бы построчным вводом добавлял , сортировал массив и сравнивал первую и вторую позиции и как только они равны записал бы размер массива-1, а потом начинал бы со второго символа.

  • @ktrgamesbigskelleton2193
    @ktrgamesbigskelleton219312 күн бұрын

    Не легче в каунт записывать на первом цыкле в каждый индекс сколько раз ты встретил число такое же или больше , а во втором цикле вернуть найбольший индекс каунт в котором записанное число равно или больше индекса

  • @DrewPython
    @DrewPython12 күн бұрын

    известно куда последний переезд - everybody comes to Hollywood.

  • @insable7459
    @insable745912 күн бұрын

    чувак на серьёзе рассказывает как решать 24 задание (из 27) из егэ по информатике..

  • @ivankondratyev2363
    @ivankondratyev236312 күн бұрын

    реализация "простого" решения убила... я даже и не подумал что так можно XD

  • @user-dk4mm8mt2t
    @user-dk4mm8mt2t12 күн бұрын

    После того как мы посчитали можно не сортировать, а работать непосредственно с массивом подсчитанных значений. Идём с конца и если значение больше или равно индексу, то возвращаем его, если нет , то увеличиваем следующее значение (индекс - 1) на количество в данной ячейке (вед h статьи должны цитироваться минимум h раз, а не ровно h). Вот код второй части на go: for i := len(cnt)-1; i>=0; i-- { if cnt[i] >= i { return i } if i > 0 { cnt[i-1]+=cnt[i] } }

  • @v.demchenko
    @v.demchenko12 күн бұрын

    Я бы хотел поправить автора видео. Дело в том, что приобьяснении он говорит про итерацию по числам справа. Но по делу, скрипт работает с нулевым и последующими елементами. Для того, что бы реализовать процесс как было обьясненно. Нужно ко второму циклу накинуть +1 и в сумму в первом цикле обьявить как елемент по которому итерируемся.. плюс условия по проверке так же изменить на начало.

  • @alex-and-er
    @alex-and-er12 күн бұрын

    А с микрофоном (петличкой) было бы намного приятнее слушать ;-)

  • @karpulix
    @karpulix12 күн бұрын

    20:59 позволю себе ремарку: `answer = Math.max(answer, maxLeftPath + maxRightPath + node.val);` ☝тут в `answer` будет записан 0 если на входе корень без детей, но с отрицательным значением или если в дереве только отрицательные значения ; мне кажется, нужно перед вызовом `helper()` инициализировать `answer = root.val`

  • @user-vc5nj9zd6i
    @user-vc5nj9zd6i13 күн бұрын

    "математик сделает лучше" с Савватеевым разбирали эту задачу. Найти решение можно просто, если ты олимпиадник. Если в компанию нужны олимпиадники, то хорошая задача

  • @dimasw99
    @dimasw9913 күн бұрын

    От души братишка, под пиво вечерком посмотреть самое оно!

  • @AlexeyGogots
    @AlexeyGogots13 күн бұрын

    Какой еще BFS?! Эта задача для доски бесконечного размера, хоть по той же ссылке на leetcode.

  • @daniyarzhanakhmetov7741
    @daniyarzhanakhmetov774113 күн бұрын

    Крутецки всё объяснил! Спасибо!

  • @iqfunru
    @iqfunru13 күн бұрын

    А мне показалось, что надо начинать с середины матрицы по типу двоичного поиска: 16 > 14, поэтому примерно четверть матрицы вправо и вниз от 16-ти не подходит. И т.д....

  • @iqfunru
    @iqfunru13 күн бұрын

    А тараканы водятся в этих квартирах?

  • @romanpr6691
    @romanpr669113 күн бұрын

    В какой проге анимацию делаете?

  • @alexeidubrovin5234
    @alexeidubrovin523413 күн бұрын

    но вы же второй при перемещении left тоже опять перебираете, не проще ли использовать std::map, хранить там позицию символа и сразу смещать позицию на искомый символ+1

  • @alexeis628
    @alexeis62813 күн бұрын

    динамическое программирование?? не метод математической индукции?

  • @__-oc6iq
    @__-oc6iq14 күн бұрын

    Что на счёт знания английского?

  • @foxes_pak
    @foxes_pak14 күн бұрын

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

  • @aleks2322
    @aleks232214 күн бұрын

    Наконец-то dyversity inclusif задачи от гугл

  • @rybiizhir
    @rybiizhir14 күн бұрын

    Можно слоями, а можно просто назначить вес каждой клетке.

  • @aleksanderpeshkin2266
    @aleksanderpeshkin226614 күн бұрын

    Что за бред 😮 Яндекс так обучает ??))

  • @ploho__3699
    @ploho__369915 күн бұрын

    это разве не первая задача литкода?)

  • @hanamura8844
    @hanamura884416 күн бұрын

    на самом деле работает это немного иначе, да и хеш таблица и множество немного разные структуры данных. wiki: Красно-чёрные деревья являются одними из наиболее активно используемых на практике самобалансирующихся деревьев поиска. В частности, контейнеры set и map в большинстве реализаций библиотеки STL языка C++[3], класс TreeMap языка Java[4], так же, как и многие другие реализации ассоциативного массива в различных библиотеках, основаны на красно-чёрных деревьях. возможно где-то это и работает тем способом, что изложил автор, но явно не везде. за материал - отдельное спасибо. сделано хорошо. но вот с тем, как это работает на самом деле я бы поспорил. если кто-то хочет сам проверить как это работает(исходя из того, что утверждает автор), то самый простой и логичный способ - замеры времени получения того или иного элемента из коллекции. всем хорошего дня!

  • @victorkochkarev2576
    @victorkochkarev257616 күн бұрын

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