Порридж В Ко-ливинге
Питонист 🤣🤣🤣 Питоновый фанатик надо
Viktor
лол
Viktor
коммент под первым видосом из шада 😂
Порридж В Ко-ливинге
Пххахах. Ну да, умные слова часто используются, но это из-за оттенка. Они в 90% случаев не нужны
Порридж В Ко-ливинге
Можно спокойно школьника 6-8 классов научить высшей математике, если нормальнотвсе объяснять и если ему будет интересно
Viktor
ахха, да там просто кладезь!
Viktor
«веб-макак» 😂
Viktor
это то, что нужно добавить в описание о себе в твитере
Порридж В Ко-ливинге
Yuri
надо тут похвастаться моей наркоманской версией permutations-ii. В дискуссиях не нашел другого дятла, который зафигачил бы префиксное дерево)) https://leetcode.com/problems/permutations-ii/discuss/930497/Solution-you-haven't-seen-before-(trie!)
Порридж В Ко-ливинге
Порридж В Ко-ливинге
надо тут похвастаться моей наркоманской версией permutations-ii. В дискуссиях не нашел другого дятла, который зафигачил бы префиксное дерево)) https://leetcode.com/problems/permutations-ii/discuss/930497/Solution-you-haven't-seen-before-(trie!)
Я премутации очень тупо решал: class Solution: def permute(self, nums: List[int]) -> List[List[int]]: res = [[]] for n in nums: temp = [] for comb in res: for i in range(len(comb)+1): temp.append(comb[:i] + [n] + comb[i:]) res = temp return res
Yuri
Но не будет наверное работать, если надо будет возвращать премутации с уникальными элементами (типо (1,2,1) и (1,1,2) одно и тоже)
“не будет наверное работать” - что ж вы батенька обо мне такого низкого мнения, что думаете, что я в священные leetcode-discussions полезу с неоттестированным кодом!
Порридж В Ко-ливинге
это не те, это у тебя permutations-1
Ммм, да, я просто увидел ссылку и решил что это решение для pre-1. А pre-2 у меня не решено
Yuri
Я премутации очень тупо решал: class Solution: def permute(self, nums: List[int]) -> List[List[int]]: res = [[]] for n in nums: temp = [] for comb in res: for i in range(len(comb)+1): temp.append(comb[:i] + [n] + comb[i:]) res = temp return res
у меня почти слово в слово permutations-1 так же сделано. Там в решениях много всяких подходов, и они все сложнее, чем вот этот.
Порридж В Ко-ливинге
у меня почти слово в слово permutations-1 так же сделано. Там в решениях много всяких подходов, и они все сложнее, чем вот этот.
class Solution: def permuteUnique(self, nums: List[int]) -> List[List[int]]: res = set([()]) for n in nums: temp = set() for comb in res: for i in range(len(comb)+1): temp.add(comb[:i] + (n,) + comb[i:]) res = tuple(temp) return res
Порридж В Ко-ливинге
5 минут убил на то, чтобы вспомнить что в питоне для tuple надо (n,) запятую ставить
Порридж В Ко-ливинге
class Solution: def permuteUnique(self, nums: List[int]) -> List[List[int]]: res = set([()]) for n in nums: temp = set() for comb in res: for i in range(len(comb)+1): temp.add(comb[:i] + (n,) + comb[i:]) res = tuple(temp) return res
Runtime: 56 ms, faster than 69.61% of Python3 online submissions for Permutations II. Memory Usage: 14.4 MB, less than 10.13% of Python3 online submissions for Permutations II. Runtime: 44 ms, faster than 98.73% of Python3 online submissions for Permutations II. Memory Usage: 14.3 MB, less than 10.13% of Python3 online submissions for Permutations II. Runtime: 52 ms, faster than 85.97% of Python3 online submissions for Permutations II. Memory Usage: 14.4 MB, less than 10.13% of Python3 online submissions for Permutations II.
Порридж В Ко-ливинге
Погоди, массивы сравниваются внутри сета не по ссылке?
Сравниваются? Это tuple, я предпологаю они в тупую как текст сравнивается
Порридж В Ко-ливинге
Щас проверю
Порридж В Ко-ливинге
Погоди, массивы сравниваются внутри сета не по ссылке?
Листы же вообще вставлять нельзя. Это unordered_set, тут тупо хэшируется и хранится. unhashable type: 'list’ В ordered_set будет уже сравнение я думаю
Yuri
Я на этом и затормозил, как хэшировать массив чтобы не было коллизий. Ничего умного в голову не пришло, кроме как в строку перевести
Порридж В Ко-ливинге
Я на этом и затормозил, как хэшировать массив чтобы не было коллизий. Ничего умного в голову не пришло, кроме как в строку перевести
Да не коллизий. Просто захэшировал [1,2,3], а его по ссылке сделали [1,2,2] вот и все, хана сэту. Да, я сначала тоже в текст переводил
Yuri
Можно ж как-то через многочлены?
Порридж В Ко-ливинге
Можно ж как-то через многочлены?
Хз. Не совсем понял о чем ты/вы
Viktor
Viktor
В хеш таблице ключи всегда строки. Придётся объект сериализовать в строку как-то.
Например в плюсах надо реализовать определённый интерфейс для типа, который собрался хранить в качестве ключей. Иначе не скомпилится.
Yuri
Хз. Не совсем понял о чем ты/вы
Хочется как-то единообразно превращать массив в чиселко. У меня какие-то мутные воспоминания о том, что элементы массива могут стать коэффициентами в полиноме
Порридж В Ко-ливинге
@vitkarpov Я привел репу в божеский вид: https://github.com/Glazomer/sorts
Viktor
Хочется как-то единообразно превращать массив в чиселко. У меня какие-то мутные воспоминания о том, что элементы массива могут стать коэффициентами в полиноме
вроде это rolling hash называется, когда в этом многочлене в качестве x выбирается некоторое простое число, обычно 31 или 53, а все остальные чиселки являются коэффициентами, плюс по модулю какому-нибудь большому считается а-ля 1e9+7, но тоже простому числу, и получается более или менее равномерное распределение по индексам
Yuri
щас почитаю и пойму, о том же самом ли я думаю
Yuri
мы же делаем 0*x^0 + 0+x^1 + (-1)*x^2
Viktor
а разве в таком случае не будет коллизии на [0,0,1] и [0,0,-1] ?
да, в таком случае будет. rolling hash хорошо работает для строк, когда там по смыслу коэффициенты от 1 до 26 натуральные числа. но на самом деле если и будет коллизия что страшного? положим в цепочку
Viktor
другой вопрос, что если там такие массивы, что постоянно коллизии...
Viktor
как бы фиговая хеш-функция
Viktor
Я вызываю экзорциста. Вы говорите о какой-то черной магии
мы говорим про функции хеширования, конкретно вот про этот вариант — https://www.geeksforgeeks.org/string-hashing-using-polynomial-rolling-hash-function/ , если хочется сделать шаг назад и понять как работает хеш-таблица и нахера мы вообще сейчас про это говорим, то советую посмотреть моё видео про хеш-таблицы 😊
Viktor
нативная реклама детектед
Viktor
вот этот видосик в смысле (если ещё не смотрел) https://www.youtube.com/watch?v=FZEi19-B3XA&list=PLvWwA9iDlhHB1qp22la3mn01JuVOwyuqw&index=4
Порридж В Ко-ливинге
Я вот в тупую числа захэшировал, а потом вынул и быстрее 95%🤣
Viktor
вот этот видосик в смысле (если ещё не смотрел) https://www.youtube.com/watch?v=FZEi19-B3XA&list=PLvWwA9iDlhHB1qp22la3mn01JuVOwyuqw&index=4
я вот здесь, кстати, как раз показываю пример коллизии в результате неудачно выбранной хеш-функции
Viktor
ну, кстати, это вариант.
Порридж В Ко-ливинге
@vitkarpov Вообще есть смысл разбирать все базовыве алгоритмы сортировки и имплементировать их
Viktor
@vitkarpov Вообще есть смысл разбирать все базовыве алгоритмы сортировки и имплементировать их
Сортировки вряд ли. Честно, не очень представляют собеседование где нужно квиксорт с нуля писать. Имеет смысл один раз написать для себя, чтобы потренировать тот же divide and conquer, но так чтобы прямо разбирать все-все не стоит.
Viktor
Ну опять же, зависит от того сколько у тебя времени. Если условно бесконечно много, т.е. собес ещё не назначен — можно и копать.
Порридж В Ко-ливинге
Ну опять же, зависит от того сколько у тебя времени. Если условно бесконечно много, т.е. собес ещё не назначен — можно и копать.
Пхахха, да я хочу по приколу просто все возможные по разу. Был бы еще кто это все дело заревьюит
Viktor
Пхахха, да я хочу по приколу просто все возможные по разу. Был бы еще кто это все дело заревьюит
ты можешь сделать из этого любопытный образовательный проект, например: стресс-тест на случайных входах и сравнение времени работы, запускай скрипт в каком-нибудь трависе, которые будет гонять разные алгоритмы, и потом графики рисовать
Viktor
это классная история, готов ревьюить 😊
Viktor
потом выступишь на какой-нибудь конференции с докладом а-ля «нахера я заимплементил все сортировки и что понял из сравнения их работы»
Viktor
и на радары рекрутеров гугла попадёшь
Порридж В Ко-ливинге
Сортировка - слишком заезжанная тема
Viktor
Вероятнее всего меня не пригласят ни на какую конфеиенцию
Да на самом деле организаторы конференций как раз ищут разные темы. Сортировка как раз классическая история, всегда интересно послушать если там накопали что-то новое, даже незначительное совсем.
Viktor
Плюс конференций очень много стало.
Sergei
Доброе утро, ребята!
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Тут Эдинбург спит еще спит, а Москва бодровствует
Viktor
Доброе утро, ребята!
Привет-привет! 👋
Viktor
Решил через Map, какое то наверное неполноценное ДП получилось: https://pastebin.com/VUmTzuny
так а чё, нормально. просто мап немного бесполезен, когда ключами являются натуральные числа, сразу вопрос: а чего не вектор, но если очень хочется, то можно.
Viktor
так а чё, нормально. просто мап немного бесполезен, когда ключами являются натуральные числа, сразу вопрос: а чего не вектор, но если очень хочется, то можно.
ну и зависит от «разреженности»: если нужно хранить две чиселки с ключами 1 и 1e6, наверное, не стоит создавать под это вектор с миллионом пустых значений 😂 в данной задаче не так.
Viktor
Решил через Map, какое то наверное неполноценное ДП получилось: https://pastebin.com/VUmTzuny
попробуй теперь, для интереса, top-down approach, т.е. через рекурсию с мемоизацией.
Viktor
Доброе утро, ребята!
Сергей, расскажи что такое и как стать Google Certified Mobile Web Specialist 🙂
Sergei
Сергей, расскажи что такое и как стать Google Certified Mobile Web Specialist 🙂
Виктор, для начала спасибо за видеокурс по алгоритмам, оттуда я сюда и попал. Хочу так же ясно и понятно излагать свои мысли по ходу написания кода. Очень полезный скилл. По поводу сертификации, коротко уже никак, гугл ее закрыл. В целом обо всем по чуть-чуть в мире веб разработки. Создавали сертификацию в рамках популяризации PWA (progressive web apps), когда веб-сайт, как приложение можно добавить на рабочий стол, добавить сплэш скрин, убрать контролы браузера, работа в офф-лайн через кэширование в сервисворкерах. Пуш нотификации и ещё много всяких API добавлено в андройды и хром в основном. Так же были задачи на производительность (например, убрать сложные вычисления в web worker), accessibility, оптимальное использование изображений в веб (тэг picture, webp и тд) и много разного на общий кругозор. Что это дало? Коротко - ничего, кроме новых знаний (это хорошо) и рекрутеры немного чаще пишут из-за слова Google. И ты если честно первый, кто вообще поинтересовался что это)
Viktor
Виктор, для начала спасибо за видеокурс по алгоритмам, оттуда я сюда и попал. Хочу так же ясно и понятно излагать свои мысли по ходу написания кода. Очень полезный скилл. По поводу сертификации, коротко уже никак, гугл ее закрыл. В целом обо всем по чуть-чуть в мире веб разработки. Создавали сертификацию в рамках популяризации PWA (progressive web apps), когда веб-сайт, как приложение можно добавить на рабочий стол, добавить сплэш скрин, убрать контролы браузера, работа в офф-лайн через кэширование в сервисворкерах. Пуш нотификации и ещё много всяких API добавлено в андройды и хром в основном. Так же были задачи на производительность (например, убрать сложные вычисления в web worker), accessibility, оптимальное использование изображений в веб (тэг picture, webp и тд) и много разного на общий кругозор. Что это дало? Коротко - ничего, кроме новых знаний (это хорошо) и рекрутеры немного чаще пишут из-за слова Google. И ты если честно первый, кто вообще поинтересовался что это)
Ха, крутяк! Слово гугл в «о себе» не помешает 😄
Viktor
Виктор, для начала спасибо за видеокурс по алгоритмам, оттуда я сюда и попал. Хочу так же ясно и понятно излагать свои мысли по ходу написания кода. Очень полезный скилл. По поводу сертификации, коротко уже никак, гугл ее закрыл. В целом обо всем по чуть-чуть в мире веб разработки. Создавали сертификацию в рамках популяризации PWA (progressive web apps), когда веб-сайт, как приложение можно добавить на рабочий стол, добавить сплэш скрин, убрать контролы браузера, работа в офф-лайн через кэширование в сервисворкерах. Пуш нотификации и ещё много всяких API добавлено в андройды и хром в основном. Так же были задачи на производительность (например, убрать сложные вычисления в web worker), accessibility, оптимальное использование изображений в веб (тэг picture, webp и тд) и много разного на общий кругозор. Что это дало? Коротко - ничего, кроме новых знаний (это хорошо) и рекрутеры немного чаще пишут из-за слова Google. И ты если честно первый, кто вообще поинтересовался что это)
насчёт курса — спасибо за фидбек, мотивация продолжать. так и до курса на udemy недалеко 😄
Порридж В Ко-ливинге
Какой год то везучий
Viktor
Какой год то везучий
либо олимпиадников из вуза либо разработчиков 5+ лет опыта?