СОБЕСЕДОВАНИЕ НА FRONTEND РАЗРАБОТЧИКА В OZON

Поделиться
HTML-код
  • Опубликовано: 3 фев 2025

Комментарии • 112

  • @mox_quattuor
    @mox_quattuor 5 месяцев назад

    Хороший видос, спасибо за запись, ещё только на первых началах изучения frontend разработки, но встретил вопросы, которые читал в документации/курсах недавно. Продолжай делать подобные видео!)

  • @takashimurakami3560
    @takashimurakami3560 5 месяцев назад +1

    Классный собес, ждём некст серий)

  • @ddflruc
    @ddflruc 5 месяцев назад

    Про cookies полезно было узнать новые детали, спасибо!

  • @lambientos
    @lambientos 3 месяца назад +1

    Для сравнения массивов можно сделать на обоих массивах .sort(), а потом .toString(). И сравнить строки.

  • @warcraft.mp4889
    @warcraft.mp4889 5 месяцев назад +15

    Друзья, кому интересно, авторы подобных каналов не являются программистами. Интервью записано с другом который задает заранее обговоренные вопросы. Вся суть в том, чтобы заманить новичков и продать им "коучинг перед собеседованием". Надеюсь не поведетесь.

    • @flowcsgo804
      @flowcsgo804 5 месяцев назад

      Ага, так и есть

    • @vitaly-
      @vitaly- 5 месяцев назад +4

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

    • @Губдалан
      @Губдалан 5 месяцев назад +1

      @@vitaly- хахахахаха вот и друг отписался

    • @vitaly-
      @vitaly- 5 месяцев назад

      @@Губдалан ты еще заплачь)

    • @Губдалан
      @Губдалан 5 месяцев назад

      @@vitaly- Так я вроде только что смеялся, с чего бы мне плакать

  • @denpol9956
    @denpol9956 Месяц назад +1

    Стек протоколов TCP/IP - куда без этого. Я каждый день js код пишу и об этом думаю 😂

  • @dev_tsx
    @dev_tsx 5 месяцев назад +2

    Можно по идее отсортировать, потом перевести в строку и сравнить, если заведомо знаем, что только числа. Запись будет самая короткая, но возможно не самая эффективная

    • @K1appy
      @K1appy 5 месяцев назад +1

      100% не самая эффективная, алгоритмическая сложность будет выше из-за сортировки, решение в видео эффективнее, хоть можно было и поменьше раз ходить по массивам

    • @dev_tsx
      @dev_tsx 5 месяцев назад

      @@K1appy согласен, просто в основном всегда пытаюсь найти самое быстрое и топорное решение, а потом оптимизировать. Особенно на интервью :) А то можно погнаться за самым оптимальным вариантом и обмануть самого себя, не успев доделать.

    • @svet0v
      @svet0v 5 месяцев назад

      @@K1appy Зачем программисты используют sort() если он повышает сложность алгоритмов ? Мне казалось что чем меньше кода, тем лучше, и не зря же sort() создали (не с претензией, сам новичок)

  • @theDenQ
    @theDenQ 3 месяца назад

    Я бы добавил два каунтера в момент наполнения мапы, на первом цикле. И перед тем как начинать второй, проверил бы суммы - если не сходятся выход с false.

  • @МарияФурманец-б3н
    @МарияФурманец-б3н 5 месяцев назад +2

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

  • @Илья-э7ю9в
    @Илья-э7ю9в 3 месяца назад +3

    Чёт задачку как то сложно решил. Можно было просто отсортировать и сравнить либо приведя к строке, либо одним циклом. Подозреваю про KISS он ничего не слышал

    • @АлексейВолков-ь2в3з
      @АлексейВолков-ь2в3з 2 месяца назад +1

      Если будешь сортировать, то сложность nlogn будет по времени

    • @Boortwint
      @Boortwint 2 месяца назад

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

    • @АлексейВолков-ь2в3з
      @АлексейВолков-ь2в3з 2 месяца назад

      @@Boortwint Да, но как правило в алгоритмических задачах гонятся не за KISS, а уменьшением алгоритмической сложности

    • @Boortwint
      @Boortwint 2 месяца назад

      @@АлексейВолков-ь2в3з ​ за уменьшением алгоритмической сложности гонятся везде. И даже при использовании принципов KISS погоня за уменьшением алгоритмической сложности никуда не девается.

    • @АлексейВолков-ь2в3з
      @АлексейВолков-ь2в3з 2 месяца назад

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

  • @Ариша-в8к
    @Ариша-в8к 2 месяца назад +1

    А какой грейд? Мидл? Ответы не супер, кстати, много погрешностей

  • @daniilthegunner843
    @daniilthegunner843 3 месяца назад

    спасибо. Только я не расслышал про некий параметр куки "pass" вроде и нагуглить его не могу. Что за параметр в итоге?)) Для того, чтобы не всегда рефреш токен отправлять

    • @АндрейГлотов-т8к
      @АндрейГлотов-т8к 3 месяца назад +1

      path, установив его ты настроишь отправку куки только на определенный маршрут

  • @serkoolive
    @serkoolive 3 месяца назад

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

  • @КостяКостин-ю1ь
    @КостяКостин-ю1ь 24 дня назад

    зачем вообще показывать что-то, если все видео заблюрили?

    • @oshu9894
      @oshu9894 День назад +1

      Зато на 144p смотреть можно!) А если серьёзно - интервьюер не блещет дикцией, так можно читать по губам

  • @ТестАкканут
    @ТестАкканут 5 месяцев назад

    если это первый, то след. какой этап бывает ?

    • @ne_frontend
      @ne_frontend  5 месяцев назад +2

      еще как минимум 1 секция техническая с лайвкодингом

    • @ТестАкканут
      @ТестАкканут 5 месяцев назад

      @@ne_frontend алгоритмы ? ждем продолжение

  • @simplethai
    @simplethai 4 месяца назад

    на 350к не того собеседующего поставили ))) как всегда в своем репертуаре - отправили на собес кого попало и кто не смог отбиться ))

  • @sergeishmelev8000
    @sergeishmelev8000 5 месяцев назад

    Так ты прошёл первый этап?

    • @ne_frontend
      @ne_frontend  5 месяцев назад +2

      да прошел :) вторую часть позже планирую выкладывать

  • @gNikro
    @gNikro 2 месяца назад

    Странные вопросы для фронта

  • @imgod113
    @imgod113 4 месяца назад +1

    Поясните пожалуйста зачем делается +1 в (counterMap[arr1[i]] || 0) + 1 ?

    • @qwiting
      @qwiting 4 месяца назад

      Для увеличения количества цифер в countMap

  • @flowcsgo804
    @flowcsgo804 5 месяцев назад

    Прошёл?)

    • @Justfunandchill
      @Justfunandchill 5 месяцев назад

      +1 к вопросу, а то такое чувство, что собеседующий сразу после этой задачки решил не тратить время (в плохом смысле), потому что подумал, что "if key in object" придает алгоритму сложность O(N^2), а это не так - там примерно O(1)

    • @ne_frontend
      @ne_frontend  5 месяцев назад +3

      @flowcsgo804 @Justfunandchill да, позвали на следующие этапы :) Их можно будет увидеть чуть позже, на этом канале или в телеге.

    • @abumuhammad005
      @abumuhammad005 4 месяца назад

      @@ne_frontend ждем

  • @PanicWassano
    @PanicWassano 27 дней назад

    собеседующий слабоват, даже вопросы нормально не может задать.

  • @aksenovkirill5191
    @aksenovkirill5191 5 месяцев назад +1

    Задачку проще через new Set решать
    Два сета и два цикла проверок с выходом на тру
    Вопрос по сетям нравится / всегда смеюсь, собес фронтовый, но что там браузер делает не интересно пошли смотреть транспортные протоколы
    На второй этап позвали?

    • @Alexchtch
      @Alexchtch 5 месяцев назад +2

      Поможет ли Set в таком случае ? [1, 2, 2] и [1, 1, 2]?

    • @aksenovkirill5191
      @aksenovkirill5191 5 месяцев назад

      @@Alexchtch согласен

    • @ЕвгенийКузнецов-щ1ю
      @ЕвгенийКузнецов-щ1ю 5 месяцев назад

      неее какой сет, сортируеш массивы по возрастанию/убыванию, переводиш в строку и сравниваеш строки, return arr1.sort().join() === arr2.sort().join(); на этом все)

    • @MaximLisyanskiy
      @MaximLisyanskiy 2 месяца назад +1

      @@ЕвгенийКузнецов-щ1ювидимо для вас сложность алгоритмов не знакомая тема

  • @ЕгорТишко́-ш9у
    @ЕгорТишко́-ш9у 5 месяцев назад

    По задаче я бы сначала сравнил размеры, затем сделал sort или toSorted, чтобы не мутировать исходные массивы (если они не отсортированные приходят и/или если это требуется). Затем в одном цикле по одним и тем же индексам сравнил каждые элементы обоих массивов. Первое не совпадение -> возврат false. Может я не допонял задачу?

    • @wickedtorpedo75
      @wickedtorpedo75 5 месяцев назад +1

      в твоём варианте сложность алгоритма будет
      линейно логарифмическая + линейно логарифмическая + линейная, если использовать сортироку слиянием, а у автора линейная + линейная + линейная.
      Чтобы было понятно сколько тактов процессор выполнит, берём массив длиной 1000 элементов, в твоём варинате к-во тактов = 10000 + 10000 + 1000 = 21000, а у автора видео 1000 + 1000 + 1000=3000, что в 7 раз быстрее, но во втором варианте от 3-цикла можно избавится и у нас выходит 2000 тактов, 2-вариант теперь 10.5 раз быстрее при длине массив равной 1000

    • @ЕгорТишко́-ш9у
      @ЕгорТишко́-ш9у 5 месяцев назад

      @@wickedtorpedo75 Повнимательнее посмотрел. Согласен. Хорошее решение. Последний цикл можно убрать и вообще красота.

    • @simplethai
      @simplethai 4 месяца назад

      @@wickedtorpedo75 хороший был бы комментарий при условиях, если не знать, что сложность так не складывется и поиск (проверка наличия) ключа в объекте это O(n)

    • @simplethai
      @simplethai 4 месяца назад

      @@ЕгорТишко́-ш9у твое решение лучше и по сложности и по памяти. лайк

    • @Boortwint
      @Boortwint 2 месяца назад

      @@simplethai с каких пор сложность О(n) хуже O(nlogn)? C каких пор проход по массивам будет худшим алгоритмом по памяти, чем использование метода toSorted, который создаёт дополнительный отсортированный массив в памяти?

  • @theDenQ
    @theDenQ 3 месяца назад

    const isEqual = (arr1, arr2) => {
    if (arr1.length !== arr2.length) return false;
    const map = new Map();
    for (let index = 0; index < arr1.length; index++) {
    const item1 = arr1[index];
    const item2 = arr2[index];
    if (map.has(item1)) {
    map.set(item1, map.get(item1) + 1);
    } else {
    map.set(item1, 1);
    }
    if (map.has(item2)) {
    map.set(item2, map.get(item2) - 1);
    } else {
    map.set(item2, -1);
    }
    }
    for (const [key, value] of map.entries()) {
    const value = map.get(key);
    // console.log(`[${key}]`, value);
    if (value !== 0) {
    return false;
    }
    }
    return true;
    };

  • @ДокторЗойдберг-й4д
    @ДокторЗойдберг-й4д 5 месяцев назад

    ```
    function isSimular(arr1, arr2) {
    if (arr1.length !== arr2.length ){
    return false;
    }
    for (current of arr1) {
    if (!arr2.includes(current)){
    return false;
    }
    }
    return true;
    }
    ```
    Не?

    • @ne_frontend
      @ne_frontend  5 месяцев назад

      если смотреть на тест-кейсы, которые изначально даны - то да возможно) Но, если начать накидывать дополнительные тест-кейсы, то код начнет отрабатывать некорректно. Например, [1, 1, 2] и [1, 2, 2]
      Если изначально дан ограниченный список, тест-кейсов от интервьюера, то это не значит, что он не захочет пополнить этот список, после того как напишешь подобное решение.

    • @ДокторЗойдберг-й4д
      @ДокторЗойдберг-й4д 5 месяцев назад

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

    • @dev_tsx
      @dev_tsx 5 месяцев назад

      @@ДокторЗойдберг-й4д к includes в цикле, скорее всего вопросы будут

    • @dididie158
      @dididie158 5 месяцев назад

      @@ДокторЗойдберг-й4д чел, тебе за короткий скажут молодец и сделай нам по-другому. Так всегда

    • @RdmHeroe
      @RdmHeroe 3 месяца назад

      У такого решения высокая сложность O(n2)

  • @СергейМаркушин-я7б
    @СергейМаркушин-я7б 3 месяца назад

    const isSimilar = (arr1, arr2) => {
    if (arr1.length !== arr2.length) return false;
    if (arr1.includes(...arr2)) {
    return true;
    }
    return false;
    }

    • @XTANCE
      @XTANCE 2 месяца назад

      Боюсь .includes не примет в себя массив, пусть даже "развернутый" с ...

    • @asmtv1
      @asmtv1 11 дней назад

      @@XTANCE принимает. проверил