Andrey
@SlivTime кстати, а такой вопрос — как поживает наследие Ромы Дворнова, если понимаешь о чем я.
Неа, не в курсе :( Я даже и не в курсе был кто это, если честно. Погуглил, теперь примерно представляю. Но я про фронт не знаю ничего, только бэкендом занимаюсь
Ilia
но жить можно, по всей видимости, как ты рассказываешь
да, еще как. но нужно понимать, что чудес тоже не бывает. когда пишешь код, а он сходу запустился и на иос, и на андроиде то чем-то придется платить. в случае РН это скоростью работы(мегабыстрый жс и однопоточный бриджинг с нативом делают свое дело). если нужна плавная работа, то это в flutter нужно смотреть.
Andrey
+1 в Яндексе. Хакерская культура 😉
О, надо же, не знал. Думал, что это из-за шведских корней Авито у нас так заведено
Evgeniy
Языки, технологии имею в виду. Хотя бы вкратце
Порридж В Ко-ливинге
Мне нравится как пункт “Уважение к коллегам” проподает после джуна 🤣 Странно что он вообще описан, т.к. это правило вообще в любой компании
Viktor
А на беке у вас что?
Вангую, что гошечка 😀
Evgeniy
Вангую, что гошечка 😀
Круто, если так)
Evgeniy
Интересно, есть ли у них дотнет
Andrey
А на беке у вас что?
Монолит на php, активно пилится на отдельные части. Почти все новое на go пишется. Ну и немного питона, но многие тоже в сторону го смотрят.
Andrey
Интересно, есть ли у них дотнет
Не, вроде бы нигде нет
Evgeniy
PHP так понимаю исторически сложилось, давно
Andrey
По большей части да. Такой себе показатель, но в слаке в канале go почти 300 человек, в питонячьем 140, php - 120
Andrey
PHP так понимаю исторически сложилось, давно
Ну да, в 2007 же все начиналось, тогда было бы странно что-то другое брать
Evgeniy
Порридж В Ко-ливинге
Roman
на самом деле ты не представляешь сколько софта написано на кроссплатфоме
А разница в движках JS не напрягает? Насколько я знаю на iOS jitовать нельзя - v8 отпадает, получается используют JSCore, а на Андроиде v8/hermes. Просто смежная команда сталкивалась с тем, что на Андроиде кусок кода летал, а в iOS очень сильно тормозил
Ilia
Не смогли только придумать как автотестирование e2e запустить на устройствах и просто было 2 ручных тестера с постоянными регресами )
Ilia
Дискорд например на ведре на RN, а на iOS - нативка. Тогда правда вопрос, зачем RN? А еще на ведре часто приложение умирает по среди разговора...
Оптимизация кода и возможно «так сложилось», ведь есть ещё веб дискорд, а десктопная версия емнип тоже на РН или на электроне, точно не помню.
Roman
Оптимизация кода и возможно «так сложилось», ведь есть ещё веб дискорд, а десктопная версия емнип тоже на РН или на электроне, точно не помню.
Кстати Discord это одно из лучших приложений реализованных на электроне и производительность, и UX все как у нэйтив
Ilia
Кстати Discord это одно из лучших приложений реализованных на электроне и производительность, и UX все как у нэйтив
У них даже была статья целая как им удалось на десктопе сделать полную поддержку управления с клавиатуры
Lynn «Кофеман»
На литкоде в отличии от адвента наоборот в выходные халява на две строки?
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Я вот так решал сегодняшнюю: Сортировка: O(N * log N) Heap: O(N + K * log N) Quick: AVG: O(N) MAX: O(N ^ 2)
Lynn «Кофеман»
Я про этот https://leetcode.com/explore/challenge/card/january-leetcoding-challenge-2021/581/week-3-january-15th-january-21st/3606/
Порридж В Ко-ливинге
Я про этот https://leetcode.com/explore/challenge/card/january-leetcoding-challenge-2021/581/week-3-january-15th-january-21st/3606/
Я тоже про это. Там можно: Отсортировать и в тупую взять (1). Можно из хипа таскать значения, будет по быстрее (2), а можно через quick select (как квик сорт, только одну чать рекурсивно делаем а не две) и будет O(N) в среднем, но может и O(N^2) случиться (3)
Lynn «Кофеман»
Там разброс времени какой-то рандомный. Мой двухстрочный код в середине, точно такой же «на 90%» быстрее
Viktor
квикселект это уже advanced-уровень 😄
Порридж В Ко-ливинге
Кстати, вариация этой задачи была как раз у меня на онсайте в Амазоне. Я написал хип и на этом все успокоились.
С сортировкой: return sorted(nums)[-k] С хипом: heapq._heapify_max(nums) return reduce(lambda _, v: v, (heapq._heappop_max(nums) for _ in range(k))
Порридж В Ко-ливинге
Написал этот ваш как его кви слект получилось норм но не понял на что 15 мин отдал
Порридж В Ко-ливинге
квикселект это уже advanced-уровень 😄
Ну и advanced который занимает страницу
Evgeniy
Там разброс времени какой-то рандомный. Мой двухстрочный код в середине, точно такой же «на 90%» быстрее
Тестов всего 32 штуки. Мелкий затык на сервере и итоговое время станет больше.
Evgeniy
И еще старые решения могут быть на старых версиях языка
Viktor
А сортировка их не устроила бы?)
Ну это типа первый шаг, а дальше надо улучшить сложность. С хипом ты убираешь лишнюю работу по сортировке элементов, которые точно в первых K больших не окажутся.
Viktor
Ну это типа первый шаг, а дальше надо улучшить сложность. С хипом ты убираешь лишнюю работу по сортировке элементов, которые точно в первых K больших не окажутся.
Но может быть и так было бы норм. Я не уверен, что для прохождения собеседования важно прямо решить все оптимально.
Viktor
Хип размера К.
Укладываешь ровно столько сколько надо, но пробежаться надо по всему массиву разумеется. Но так как размер хипа меньше значительно может быть самого массива, то это лучше чем сортировать весь массив.
Порридж В Ко-ливинге
Evgeniy
Весь же
Да, разобрался
Порридж В Ко-ливинге
Viktor
Весь же
Ну вот ты зря весь укладываешь, можно не весь
Viktor
Ну вот ты зря весь укладываешь, можно не весь
Зачем раздувать хип перекладывая элементы лишний раз. Особенно если там не числа, а объект тяжёлые, можно нормально так ускориться.
Evgeniy
Не, я же скидывал выше алгоритм. Из хипа K раз тащишь и все
Ну или так. Виктор просто оптимальный по памяти вариант предложил
Viktor
На самом деле написать можно как угодно, мне кажется, но про такие штуки могут поговорить. Просто проверить понимание.
Viktor
Как добазаришься, короче.
Порридж В Ко-ливинге
Зачем раздувать хип перекладывая элементы лишний раз. Особенно если там не числа, а объект тяжёлые, можно нормально так ускориться.
Ммм, сделать хип и вставлять элементы до размера K, чтобы если элемент уже сразу меньше нужного, не вставлять его никуда
Viktor
Не, я же скидывал выше алгоритм. Из хипа K раз тащишь и все
Но этот вариант все равно лучше сортировки, потому что так работает хип. Типа не сортирует некоторые элементы между друг другом, нет такой задачи у него, только экстремум держит в корне дерева. Если это все рассказать — зачёт.
Viktor
О том и речь.
Мне показалось ты всему массиву хипифай делаешь
Порридж В Ко-ливинге
Viktor
Да 😅 На собесе я лучше сделаю
Если просто сможешь обьяснить тоже попрет. На самом деле если английский не родной это прямо может быть фейлом. Типа пытаться обьяснить до конца сам не понимая на другом языке.
Порридж В Ко-ливинге
В чем кстати и разница между хипом и деревом поиска
В дереве слева больше, справа меньше. В хипе все что ниже - меньше
Viktor
В чем кстати и разница между хипом и деревом поиска
Мне кажется у дерева поиска построже правила для относительного расположения узлов, чтобы можно было найти нужный элемент, а куче этого не надо, там попроще правила.
Evgeniy
Ну да, то не вопрос был)
Порридж В Ко-ливинге
Чтобы это понять, надо ручками самому написать.
Viktor
Чтобы это понять, надо ручками самому написать.
Это, кстати, хороший поинт. Многие рекомендуют, а-ля библиотеку. У outtalent в программе подготовки как раз есть такое, даже если в языке уже все есть.
Порридж В Ко-ливинге
Это, кстати, хороший поинт. Многие рекомендуют, а-ля библиотеку. У outtalent в программе подготовки как раз есть такое, даже если в языке уже все есть.
Вообще надо все функции которыми пользуешься разок самому написать. Я так пару месяцев назад printf писал)
Порридж В Ко-ливинге
Это, кстати, хороший поинт. Многие рекомендуют, а-ля библиотеку. У outtalent в программе подготовки как раз есть такое, даже если в языке уже все есть.
Не надо их запоминать, можно подгляжывая. Просто чтобы представлять чо там творится. Ну опять же, это программа + если в ФААНГе хочешь выпендриться
Viktor
Точнее даже и не ясно как «запомнить». Если не понимаешь что там дерево, то в более или менее нетривиальной задаче не поймёшь как условие задачи наложить на хип