Открытое алгоритмическое собеседование

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 27

  • @Tatiana-of5xw
    @Tatiana-of5xw 3 місяці тому +4

    Павел - молодец! 🎉

  • @НикитаБуров-ъ6р
    @НикитаБуров-ъ6р 4 місяці тому +1

    после поиска первого решения через бин поиск нужно итеративно - = 1 спускаться до минимума, koko eats bananas таки

  • @MessirAvgur
    @MessirAvgur 5 місяців тому

    Ваня, привет от 50 когорты! 😁

  • @werft2266
    @werft2266 5 місяців тому +1

    функция из второй задачи находит же не оптимальное решение, а просто хорошее, а в третьей нужно найти именно минимальное значение и поэтому её нельзя использовать?
    Или я не понял?

    • @maxfalkovich
      @maxfalkovich 5 місяців тому

      Во второй решение за линию, вполне оптимальное

    • @werft2266
      @werft2266 5 місяців тому

      @@maxfalkovich в плане не минимальное количество контейнеров

    • @RusPeople21
      @RusPeople21 4 місяці тому +1

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

  • @RomanKoshetov
    @RomanKoshetov 2 місяці тому

    3 задача была с неправильным примером, там не 12 можно распределить так: 4 2 5 | 2 8 | 3 4 3 | 1 10 | Вот код задачи:
    conv = [1, 3, 2, 4, 10, 8, 4, 2, 5, 3]
    count = 4
    # с сумматорами
    # CPU - O(n*m) n - кол-во емкостей в конвейере, m - кол-во контейнеров
    # Memory - O(m) - тк используем список сумматоров
    summators = [0 for i in range(count)]
    minSumIndex = 0
    for e in conv:
    for i in range(len(summators)):
    if summators[minSumIndex] > summators[i]:
    minSumIndex = i
    summators[minSumIndex] += e
    print(max(summators))

    • @dezmondlab
      @dezmondlab 2 місяці тому

      У них в условии 3 задачи порядок элементов нельзя менять (это было в условии 2 задачи, для 3 не очевидно, но это типа модификация 2). Но решение таки не всегда верное, после нахождения нужно еще попробовать уменьшать объем на 1, пока это возможно, тк с текущим количеством бидонов может быть диапазон объемов.

    • @RomanKoshetov
      @RomanKoshetov 2 місяці тому

      @@dezmondlab мое или их решение не верное?

    • @dezmondlab
      @dezmondlab 2 місяці тому

      @@RomanKoshetov у них неверное

    • @RomanKoshetov
      @RomanKoshetov 2 місяці тому

      @@dezmondlab немного не понял про неизменение порядка, в моем решении мы идем циклом по каждому по порядку их следования в массиве, можете объяснить?

    • @dezmondlab
      @dezmondlab 2 місяці тому

      @@RomanKoshetov У них емкости идут в порядке 1 3 2 4 10 ... Нельзя залить, например, 1 3 в первый бидон, потом 2 во второй, а затем 4 снова в 1. Если перешли к заполнению второго бидона, то первый более не трогаем. Из-за этого задача проще, чем искать оптимальное распределение.
      То есть исходный пример [1, 3, 2, 4, 10, 8, 4, 2, 5, 3] распределяется только с сохранением порядка [1, 3, 2, 4 | 10 | 8, 4 | 2, 5, 3]

  • @caraul72
    @caraul72 20 днів тому

    А что помешало очень большую емкость разлить по нескольким бидонам?

  • @АкобирМАДЖИДОВ-п7и
    @АкобирМАДЖИДОВ-п7и 3 місяці тому +1

    Мне с лососем, пожалуйста. Спасибо

  • @kekcius
    @kekcius 7 місяців тому +4

    Можете кто-нибудь объяснить, на кой хрен такие задачи, если в реальной работе никогда даже близко к ним не бывает?

    • @spacecookies6814
      @spacecookies6814 7 місяців тому

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

    • @kekcius
      @kekcius 7 місяців тому

      @@spacecookies6814 имеешь в виду что это именно для хайлоада? Просто там пузырьковая или другая сортировка вручную практически нигде не применяется) разве что совсем у низкоуровневых сишников. В промышленных системах важнее знать особенности разных типов индексов конкретных СУБД, архитектурные подходы... Подправьте если не прав. Даже те кто работает в долине наизусть учат алгоритмы и структуры данных для собесов, а потом все как один говорят, что это можно забывать до следующего поиска работы

    • @SergiyAntonyuk_PhD
      @SergiyAntonyuk_PhD 6 місяців тому +1

      Просто это копирование ЗАПАДНОГО подхода к набору персонала в КРУПНЫЕ компании (Google, Amazon, Facebook и т.д.):
      важно чтобы КАНДИДАТ был достаточно эрудирован (уже встречал подобные задачи и мог быстро решить предложенную)
      или был сообразителен и мог быстро предложить алгоритм шенеия и оценить его плюсы и минусы.

    • @yafpv
      @yafpv 6 місяців тому

      Если работа заключается в написании рест ручек - то смысла нет.

    • @ЕвгенийП-д8л
      @ЕвгенийП-д8л 3 місяці тому +5

      Когда чел шарит в алгоритмах, он не будет решать реальные задачи не оптимально. Я на практике у людей, не умеющих решать алгоритмические задачи часто вижу код с неоправданно завышенной асимптотикой. Негативных следствий из этого много разных. Например, какие-то запросы серверу могут долго обрабатываться. Может потребоваться сильно больше серверов или более дорогих серверов для обеспечения работы такого решения, чем для обеспечения работы оптимального решения. Это такая тренировка специалиста с запасом. Такой подход в любой сфере жизни можно увидеть. Тяжело в учении -- легко не работе.