C++ Siberia 2021: Павел Филонов, Евгений Медведев, Собеседование онлайн

  Рет қаралды 7,914

C++ User Group

C++ User Group

3 жыл бұрын

Ближайшая конференция: С++ Russia 2024, 24 мая (online), 2-3 июня (offline, Москва)
Подробности и билеты: jrg.su/W8skjE
- -
Собеседование онлайн, алгоритмическая секция, решаем задачи
#cpp #cppsiberia

Пікірлер: 35
@Elias-dj1ge
@Elias-dj1ge 3 жыл бұрын
Всегда приятно столкнуться с интервьюером вроде Павла. Если по работе не договоришься, то приятно пообщаешься и какими-то знаниями обогатишься. Удачный характер для архитектора / руководителя.
@VoloPoDoNoK
@VoloPoDoNoK 11 ай бұрын
Попасть к интервьюеру, как Павел, мечта! Поставленная речь, манеры и подача материала, все прекрасно.
@seedered
@seedered 3 жыл бұрын
Собеседований не по фронт-энду на Ютубе очень мало Было интересно посмотреть, давайте еще!
@HelloWorld-fy8cd
@HelloWorld-fy8cd Жыл бұрын
Если дан массив единичек и ноликов в виде массива байт char*, то можно преобразовать его к типу short* который состоит из элементов по два байта. Получается что надо найти в массиве значение где соседние байты разные , а это 0x01. То есть просто применять бинарный поиск к массиву short* ища там число 1(которое занимает 2 байта) вот и всё решение 😊 При таком варианте мы будем натыкаться либо на 0x00, либо на 0x11, а 0x01 будет как раз в момент смыкания границ left и right
@user-do4fm1nz2f
@user-do4fm1nz2f Жыл бұрын
0 0 1 1 - уже не сработает :)
@Arenoros
@Arenoros 2 жыл бұрын
Тоже захотелось на себе испытать, а то с дивана то всё кажется просто) Есть в планах ещё подобные подкасты?
@helcaraheleen4974
@helcaraheleen4974 3 жыл бұрын
Было интересно. Спасибо.
@RichardGraveman
@RichardGraveman 2 ай бұрын
есть тест для проверки результата этого задания?
@user-yd7ds6po4l
@user-yd7ds6po4l 3 жыл бұрын
Ладно partition_point, вроде и через банальные {lower,upper}_bound замечательно выражается
@user-xf7xu1rc4u
@user-xf7xu1rc4u 3 жыл бұрын
Во-первых, всегда легче рассуждать с дивана про себя, во-вторых, даже быстро поняв решение задачи было интересно слушать как рассуждает Евгений, смотреть в какие мысленные препятствия он утыкается. В этом и смысл видео, всем не угодишь со сложностью задач. И спасибо интервьюеру, очень корректное поведение. Напомнило мне, как я общался со своими студентами, когда они почему-то тупят и надо им не сказать ответ, а подтолкнуть их к решению.
@aleksanderaksenov1363
@aleksanderaksenov1363 2 жыл бұрын
Сказать честно,лайв кодинг в большинстве случаев это явный перебор-задачи даются явно на большее время выполнения,тем более в более спокойной атмосфере,а если тебе удается решить эти задачки,то скорее всего либо ты их решал либо делал крайне похожие.а особенно выпубают случаи,когда онлайн компилятор не работает,а нужно догадаться а работоспосбности кода,или багах внутри
@kvoistinov
@kvoistinov 2 жыл бұрын
А еще не стоит пропускать мимо возможность переполнения при сложении.
@VitaliyNET
@VitaliyNET 2 жыл бұрын
👌
@maksimprudnikau4630
@maksimprudnikau4630 3 жыл бұрын
Как же тяжело смотреть, когда понял решение и просто ждёшь, пока до него дойдёт и Евгений :)
@altkun_
@altkun_ Жыл бұрын
ну умен чо я могу сказать
@programmerc1178
@programmerc1178 2 жыл бұрын
Задача по сути решается в одну строчку. В stl есть функция find(), с помощью неё находим первую 1-чку и просто вычитаем 1, т.е. auto idx = find(a.begin(), a.end(), 1)-a.begin()-1; Это решение за O(log N), быстрее некуда
@user-px9ch4fl6z
@user-px9ch4fl6z 2 жыл бұрын
Так файнд же за O(n) работает, ему же без разницы, какой интератор на вход приходит, главное чтоб можно было к нему делать +1, для конкретных структур свой файнд будет, но просто find то не знает, к нему на вход пришёл массив, список, дерево или вообще свой класс с переопределенными итераторами, разве не так?
@user-px9ch4fl6z
@user-px9ch4fl6z 2 жыл бұрын
Даже на cppreference написано, что сложность O(n)
@programmerc1178
@programmerc1178 2 жыл бұрын
@@user-px9ch4fl6z у find-а верхняя граница - O(n), но это в случае неотсортированного массива. А в задаче массив изначально отсортирован, так что тут обычный бинпоиск за O(log n)
@HelloWorld-fy8cd
@HelloWorld-fy8cd Жыл бұрын
Юзать на собесе STL эквивалентно читерству 😂
@rafk5341
@rafk5341 11 ай бұрын
Почему все такое белое
@-urdy
@-urdy 2 жыл бұрын
твёрдая двойка
@Dofor
@Dofor Жыл бұрын
А причём здесь С++? Задача и вопросы на роль програмера на чистом С.
@feanormazin0715
@feanormazin0715 3 жыл бұрын
Если будет продолжаться рубрика, возможно будет интереснее, если перед таким длинным решением одной задачи, интервьюер пройдется блицем по лёгким вопросам. Ну к примеру, как в двоичном виде выглядит -1, сколько будет 2^8 2^32, пусть человек про пет проекты расскажет, или про диплом, если связан тематически. Не настаиваю, просто я примерно пол часа ждал пока Евгений дойдет до решения, а мне как школьнику хотелось с задней парты крикнуть ответ
@niklkelbon3662
@niklkelbon3662 2 жыл бұрын
"лёгкий вопрос"? В двоичном виде -1 я так понимаю ты ожидаешь ответ в дополнительном коде. Это уже не очень лёгкий вопрос(Про это нужно просто знать) и смысла если честно маловато, если ты не занимаешься байтиками(даже битиками). Зачем наизусть знать 2 в 32 я вообще ума не приложу
@feanormazin0715
@feanormazin0715 2 жыл бұрын
@@niklkelbon3662 я предложил, хотите другие вопросы -- предложите. Вообще я сам с ходу не вспомню 2^32, только примерно. Это лёгкий блиц, ответили - круто, не ответили - не беда, это не ядро собеседования
@niklkelbon3662
@niklkelbon3662 2 жыл бұрын
@@feanormazin0715 я только скажу что видос так себе, одна простенькая задача на целый час... Вообще в целом программирование на собеседовании не одобряю. Маленькие хитрые вопросы без кода, тонкости плюсов и прочее, но не программы
@feanormazin0715
@feanormazin0715 2 жыл бұрын
@@niklkelbon3662 ну скажем так, формат хороший, интересный, но интервьюиерумый не подошёл. Первый блин комом, так сказать. Ну и да, тут ведь не особо кодить просили. Важна была мысль парня, как он её решит, а не сам код.
@feanormazin0715
@feanormazin0715 2 жыл бұрын
@You Tube вы не учитесь водить машины, вы эти машины делаете ;)
@4sat564
@4sat564 2 жыл бұрын
I forgor
@vladimirsagabalk1364
@vladimirsagabalk1364 Жыл бұрын
Что-то мне подсказывает, что таких ламповых собеседований не бывает. Но утверждать не могу, т.к. не устраивался программером. После объявления задачи алгоритм придумалcя сразу, а вот реализовывал в коде долго, чуть не психанул. Понаделал кучу выводов cout, чтобы понять, где я намудрил с +1-1. Получилось строк 15 на If-ах, после удаления вспомогательных cout. Ну и в течение 2 минут сократил функцию вот так: int searchLastZero (int * array, int start, int end) { int center = start + (end+1 - start)/2; if ( end - start < 2) return (array[end] == 0) ? (end) : (start); return (array[center] == 0) ? searchLastZero(array, center, end) : searchLastZero(array, start, center); } Знаю, что со стороны все проще и написал только, чтобы мне ткнули на кривость, или что-то подсказали умного. Вова, 46 годиков. Зачем-то стал учить с++.
@Alexandr_Averin
@Alexandr_Averin 11 ай бұрын
А где вы изучаете спп? Можете посоветовать курсы, ютуб каналы, ещё что-нибудь, может книги? Я только начал, 3 дня назад учить самоучкой СПП)
@DTorange1
@DTorange1 Жыл бұрын
Написать бинарный поиск с первого раза нереально. Используйте std::lower_bound и можно не заморачиваться.
Антон Полухин - Незаменимый С++
53:03
C++ User Group
Рет қаралды 38 М.
Can You Draw The PERFECT Circle?
00:57
Stokes Twins
Рет қаралды 88 МЛН
C++ Siberia 2021: Антон Полухин, Read me!
1:10:47
C++ User Group
Рет қаралды 6 М.
C++ Siberia 2020: Антон Полухин - Незаменимый С++
1:27:06
Собеседование Middle C++
1:01:50
Ambushed Raccoon
Рет қаралды 26 М.