Ilia
А я вчера забыл
А сегодня получил заветные 4 буквы?))
Sergei
Ага, ну ладно, теперь хоть паспорта всем сменю до следующей подачи, а то срок уже подходил)
Ilia
Ну все, в следующий раз точно выиграешь в чистый паспорт ))
Sergei
Да и ребёнку 4, а на фото 0,5 уже с трудом таможенники пропускали)
Sergei
Пойду IELTS сдавать, надо работать по всем направлениям :)
Sergei
В Канаду нужен на любую визу
Ilia
В Канаду нужен на любую визу
А по баллам проходишь в Канаду?
Sergei
А по баллам проходишь в Канаду?
Я хочу по Atlantic immigration pilot, там даже пекарем можно переехать, но регион так себе с тз погодных условий. Но если учесть что я сейчас живу у белого моря, то это улучшение будет :)
Sergei
Но там с работой же будет не очень, плюс наверняка по переезжаемой специальности придётся работать )
Нет, я поеду программистом, имею ввиду, что низкие требования к кандидатам, просто нужно получить оффер в компанию из реестра, там и IBM и офисов других компаний полно
Sergei
Поидее, даже можно попросить компанию которая хочет тебя нанять, чтобы она вступила в реестр, кто-то мелкий вполне может на это пойти
Sergei
Ну и если будет совсем не очень, можно будет уже в приличные провинции релоцироваться после получения внж
Ilia
Я хочу куда-нибудь :)
А есть куда не хочешь?
Владъ
о, сегодня тоже хардовая, я думал медиум
Stas
Я что-то по времени в ней не уложился.. UPD: А нет, норм, оптимизировал, уложился хD
Ilia
Runtime: 8252 ms, faster than 7.14% 😄
Ilia
но задача явно не хард
Viktor
Я через BFS хотел делать, но словил out of memory при таких ограничениях 😃
Ilia
а где там bfs можно применить? 🙂
Evgeniy
для каждого элемента
Ilia
все равно не понимаю, если честно
Владъ
там обычный maxheap
Evgeniy
все равно не понимаю, если честно
Ну каждый из элементов заменяем на сумму. И так далее. По памяти не пройдет, конечно
Evgeniy
Да и по времени
Viktor
Перебор
ага, по сути так и есть. замена каждого элемента на сумму если он меньше соответствующего элемента в таргете → это переход между узлами графа. ну и поиском в ширину ищем пока не найдем нужный узел с таргетом.
Viktor
граф головного мозга случился.
Viktor
меня ещё смутило условие: сказано интеджеры, а по факту выясняется, что отрицательных чисел быть не может, значит сумма всегда увеличивается. а это все меняет, уже жадинка получается.
Evgeniy
Можно было написать positive в условии
Владъ
Viktor
Но в ограничениях целые: 1 <= target[i] <= 10^9
так вот тож, невнимательно читаю.
Владъ
по мне, задача простая с самого начала было понятно что делать - просто решать с конца по очереди из максимального элемента отнимаешь сумму без него и так пока сумма не станет равна длине массива
Ilia
поэтому 8250мс - мой выбор
Ilia
maxheap один раз сортируешь, а потом просто спускаешь вниз результат
на жс еще имплементацию написать надо, а я до хипа еще не дошел в своем обучении
Владъ
https://leetcode.com/problems/construct-target-array-with-multiple-sums/discuss/1199484/javascript-short-fast-and-simple
Владъ
inplace модификацию не придумал. красиво, да
надо помнить, что это литкод, а не реальный проект, и здесь главное быстро и меньше памяти, а не чисто и понятно)
Ilia
надо помнить, что это литкод, а не реальный проект, и здесь главное быстро и меньше памяти, а не чисто и понятно)
Ну у тебя есть одна строка, которая в сотню раз уменьшает рантайм ), а это офигенный нюанс.
Null
Happy Monday! 👋 Задача этой недели — сделать строчку великой (опять). Нужно рекурсивно удалить все пары «плохих» символов. Спойлер: снова стеки. https://www.youtube.com/watch?v=RrzsZLgbyVM
Sergei
Happy Monday! 👋 Задача этой недели — сделать строчку великой (опять). Нужно рекурсивно удалить все пары «плохих» символов. Спойлер: снова стеки. https://www.youtube.com/watch?v=RrzsZLgbyVM
Ты уже не первый раз выносишь относительно простую проверку в отдельную функцию, это best practice на интервью или чтобы было понятнее твоему товарищу?
Viktor
Ты уже не первый раз выносишь относительно простую проверку в отдельную функцию, это best practice на интервью или чтобы было понятнее твоему товарищу?
Хороший вопрос, я бы сказал, что мне так удобнее мыслить. Проверка в одну строку, но тем не менее надо ж её как-то назвать потому что это важная часть по смыслу задачи, вот и выношу в функцию с понятным названием. Плюс на интервью бывает удобно написать сам алгоритм не отвлекаясь на детали, из расчета «представить, что вот эта функция магическим образом реализована». В конце интервью может не остаться время, но это пофигу, можно списать на «ну там почти очевидно как реализовать».
Viktor
А вот если сперва ковыряться с условием, а потом не дописать сам код решения, это уже не ок.
Sergei
А вот если сперва ковыряться с условием, а потом не дописать сам код решения, это уже не ок.
Да, хороший вариант, чтобы успеть по времени, можно тупо проговорить как бы ты ее реализовал
Viktor
Именно, да.
Sergei
Я, кстати, проверил так curr.toLowerCase() === prev.toLowerCase() && curr !== prev
Viktor
главное только пояснять, что это хелпер, который реализуешь потом. а то у меня на мок-интервью на прампе было один раз так, что я что-то объявил и чел говорит «не думаю, что в стандартной библиотеке есть такая функция» 😂
Viktor
Я, кстати, проверил так curr.toLowerCase() === prev.toLowerCase() && curr !== prev
да, это нормальная тема. хотелось рассказать про charCodeAt просто. твой вариант проще, конечно.
Sergei
Ты это магическое число можешь забыть) в Гугл докс нет консольки Но тут или научить или интервью пройти, от задач нужно смотреть
Viktor
магическое число, конечно, лучше в константу положить и вычислить один раз 'A'.charCodeAt(0) - 'a'.charCodeAt(0)
Sergei
Тоже, вариант, я не подумал))
Sergei
Потому что мне кажется это стремно, когда ты просто сравнил с числом из головы)
Sergei
Может кандидат гений, но это маловероятно)
Viktor
Ты это магическое число можешь забыть) в Гугл докс нет консольки Но тут или научить или интервью пройти, от задач нужно смотреть
ну да, я стараюсь не делать фокус на интервью, а скорее на алгоритмах в широком смысле + какие-то отклонения в сторону если имеет смысл, как в от с этой кодировкой. идея в том, что пошёл ты такой входить в айти и учат тебя на реакте верстать за 3 месяца чтобы поскорее запихнуть на работу — это ок, конечно, но вот хотелось бы ещё какой-то базовый курс «просто по программированию» получить.
Viktor
в таком случае «алгосики» могут пригодиться. смотришь разные задачки, пытаешься писать сам, получаешь ужасный код, смотришь разбор, переписываешь ужасный код.
Viktor
кодеварс на стеройдах.
Viktor
но пока пытаюсь осмыслить этот формат, получается путано. хочется, в итоге, прийти к курсу.
Viktor
Потому что мне кажется это стремно, когда ты просто сравнил с числом из головы)
не, это как раз плохой знак если магические числа появляются 😊
Viktor
я пересматривал Маврина недавно и там было про это как раз.
Viktor
вообще не очевидно, что можно «частично сортировать массив». только до той части, что тебе нужна.
Sergei
Делаешь партишн как в квиксорте и идёшь только в нужную сторону, книга, кстати, огонь для новичков, я тогда у тебя про неё советовался
Sergei
У неё лучший комментарий на Амазоне «я наконец поняла квиксорт»
Sergei
Уровень новичок без математики глубокой и намного больше тем чем в гроккаем
Sergei
A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills https://www.amazon.com/dp/1680507222/
Sergei
Вдруг кто-то заинтересуется
Порридж В Ко-ливинге
Капец, сначала хотел похвалить levels.fyi за то, что очень быстрый и отзывчивый интерфейс, а главное быстро и умно все подшружают
Порридж В Ко-ливинге
А оказалось они все 2800 вакансий выкачивают сразу, вот и все быстро работает 🤣