Собеседование Яндекс Java | АЛГОРИТМЫ LIVECODING РАЗБОР ЗАДАЧ

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ต.ค. 2024

ความคิดเห็น • 49

  • @sorokinpavel
    @sorokinpavel  หลายเดือนก่อน

    Забирай бесплатные материалы от меня по изучению Java и подготовки к собеседованиям: t.me/JavaLearnBot?start=c1724626210163-41-ds

  • @anjelomanoranjan
    @anjelomanoranjan 7 หลายเดือนก่อน +2

    Все супер) Жду новых видео по Java)

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      Спасибо за поддержку)

  • @ArtemKotov-r5u
    @ArtemKotov-r5u 5 หลายเดือนก่อน +5

    public int calculate(String exp) {
    return stream(exp.split("\\+"))
    .map(it -> stream(it.split("\\*"))
    .mapToInt(Integer::parseInt)
    .reduce(1, (a, b) -> a * b))
    .mapToInt(it -> it)
    .sum();
    }

    • @Лена-в1н6ы
      @Лена-в1н6ы หลายเดือนก่อน

      А что, так можно было что-ли?!?😲 Вы - гений!

  • @makhmudov4858
    @makhmudov4858 2 หลายเดือนก่อน

    я вот недавно начал изучать Джава. Начал с ООП, Интересный язык конечно! Спасибо тебя за контент. Жду от тебя следующих видео про решение таких задач!

  • @DP-ym4dg
    @DP-ym4dg หลายเดือนก่อน +2

    Когда прочитал решение на литкоде, не понял, но видео запилил.

    • @DP-ym4dg
      @DP-ym4dg หลายเดือนก่อน +3

      Первая задача вообще решена не правильно (порядок операций будет не верный)

  • @wildjoe6259
    @wildjoe6259 7 หลายเดือนก่อน +3

    Спасибо!

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน +1

      Рад, что было полезно!

  • @stepankachan6667
    @stepankachan6667 หลายเดือนก่อน

    Первая задача решена не правильно, например для выражения "1+23*5+2" выдает 31, когда правильный ответ 118.
    Накидал более читаемое как по мне решение :
    public static int calculate(String exp) {
    int result = 0;
    for (String byPlus : exp.split("\\+")) {
    if (byPlus.contains("*")) {
    int blockResult = 1;
    for (String s : byPlus.split("\\*")) {
    blockResult *= Integer.parseInt(s);
    }
    result += blockResult;
    } else {
    result += Integer.parseInt(byPlus);
    }
    }
    return result;
    }

  • @РоманПыхов-я2ж
    @РоманПыхов-я2ж 7 หลายเดือนก่อน +1

    toCharArray() Returns:
    a newly allocated character array whose length is the length of this string and whose contents are initialized to contain the character sequence represented by this string.
    так что по памяти все-таки O(n) получилось

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      В принципе да) Но по сути можно заменить на обычный обход строки, алгоритм не изменится

  • @Nick87rus
    @Nick87rus 7 หลายเดือนก่อน

    Спасибо за видео

  • @sergeypavlov3592
    @sergeypavlov3592 7 หลายเดือนก่อน

    Задачу на граф видел в видео интервью в фейсбук.

  • @ПавелКононов-м6б
    @ПавелКононов-м6б 7 หลายเดือนก่อน

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

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      Решать больше задач на графы, изучать теорию. У меня было видео про алгоритмы, можно посмотреть его.

  • @userfhhoyhgfdgg
    @userfhhoyhgfdgg 7 หลายเดือนก่อน

    Майка классная❤

  • @МакарПелогейко
    @МакарПелогейко 7 หลายเดือนก่อน

    2-ая задача содержит ошибку: если подать на вход дерево: new TreeNode(1,
    new TreeNode(8, new TreeNode(2), new TreeNode(4)), null);
    // 1
    // / \
    // 8
    // / \
    // 2 4
    Правильный ответ будет 15, а, приведенное решение, выдаст 14
    Исправление:
    Строка 111:
    заменить: return Math.max(Math.max(maxL, maxR) + root.val, 0);
    на: return Math.max(Math.max(maxL, Math.max(maxR, maxR + maxL)) + root.val, 0);
    -----------------------------------------------------
    В общем, классное видео, интересно рассказываешь. Спасибо! :)

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      Спасибо за обратную связь)
      В примере, который вы прислали, будет правильный ответ 14, а не 15. Путь не может проходить по двум ребрам дерева два раза

  • @НикитаБуров-ъ6р
    @НикитаБуров-ъ6р 3 หลายเดือนก่อน

    решил первое через стек,сижу довольный, потом увидел О(1) по памяти 8-(

  • @victordemyanenko4341
    @victordemyanenko4341 7 หลายเดือนก่อน

    Спасибо за видео! Ты на Junior проходил?

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      Спасибо за обратную связь. Проходил на позицию Senior

    • @Макс-ч7ъ7ы
      @Макс-ч7ъ7ы 7 หลายเดือนก่อน

      @@sorokinpavelто есть это задачки для senior -а?)

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      @@Макс-ч7ъ7ы Это стандартные задачи, которые задают всем на алгоритмической секции. Также еще не понятно что значит "задача для senior'а", определение сложно дать

    • @Vladimir-pz5eo
      @Vladimir-pz5eo 4 หลายเดือนก่อน

      @@Макс-ч7ъ7ы порой даже сортировку пузырьком сложно решить, когда на твои действия смотрят

  • @kirillzhukov1675
    @kirillzhukov1675 5 หลายเดือนก่อน

    Мне понравилось видео, все понятно объясняешь, будет круто, если микро будет лучше, а то сильно приходится выкручивать звук, плохо слышно =/

  • @MuradMatnazarov-fj1cq
    @MuradMatnazarov-fj1cq 6 หลายเดือนก่อน

    сколько лет уже занимаешься джава разработкой?

    • @MuradMatnazarov-fj1cq
      @MuradMatnazarov-fj1cq 6 หลายเดือนก่อน

      чтоб пройти яндекс на позицию сеньйора?

  • @JavaDevOld
    @JavaDevOld 2 หลายเดือนก่อน +1

    Интересно Вас было слушать. Но задачи по парсингу строк - выражений обычно решаются через стек.... Это быстро , надежно, легко масштабируется... Задачка стандартная, хотя знать ее решение нету смысла, так как подобные вещи уже давно формализованы. Алгоритм классический называется ОПЗ(обратная польская запись). Эти штуки давно в обычных калькуляторах работают... Желаю Вам всего наилучшего

    • @mrveles
      @mrveles 27 วันที่ผ่านมา

      Здравствуй!
      Стек не подходит по условиям задачи. Требуется решить с константным потреблением памяти.

  • @ZeleniiKot
    @ZeleniiKot 6 หลายเดือนก่อน

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

    • @MuradMatnazarov-fj1cq
      @MuradMatnazarov-fj1cq 6 หลายเดือนก่อน +3

      O(1) потому что переменные константы и не зависит от длины аргументов

    • @ZeleniiKot
      @ZeleniiKot 6 หลายเดือนก่อน

      @@MuradMatnazarov-fj1cq почему константы? там final не стоит

    • @furybarzha
      @furybarzha 6 หลายเดือนก่อน +2

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

    • @ZeleniiKot
      @ZeleniiKot 6 หลายเดือนก่อน

      @@furybarzha в этом у меня и загвоздка, допустим я строку с миллионом символов такую создал, это же определённый объем памяти, но по прежнему пишем O(1)

  • @igorevichshow3196
    @igorevichshow3196 7 หลายเดือนก่อน

    топ)

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      Спасибо)

  • @minik2265
    @minik2265 7 หลายเดือนก่อน

    Контент топ, но вторая задача чето хард либо я слабый пока

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      Спасибо за филбек) У второй задачи просто тематика така - деревья. Если решать задачи на такую тему, то со временем легче будет)

  • @MrSuperjuice
    @MrSuperjuice 7 หลายเดือนก่อน

    для второй задачи, твое решение не корректное если все значения будут отрицательные ты просто вернешь 0

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน +1

      Нет, все корректно отработает, можно запустить и проверить

  • @ПавелКононов-м6б
    @ПавелКононов-м6б 7 หลายเดือนก่อน

    Ты в Яндекс Маркете?

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน

      Я не работаю в Яндексе

  • @TheKozladoy
    @TheKozladoy 7 หลายเดือนก่อน

    Так а где примеры работы кода? Да и способ решения первой задачи вообще детсад какой-то. А если попросят добавить скобки, или будут пробелы между символами? Что тогда? Писать простыню if-else? Хотя бы токенизацию и стек применили бы.

    • @sorokinpavel
      @sorokinpavel  7 หลายเดือนก่อน +1

      Примеров работы кода нет, показываю только решение. Задача была поставлена в таком виде и не подразумевалось, что будут добавляться скобки или новые типы операций. Я решал так, как была поставлена задача и не пытался ничего додумать

    • @ferzzzzzz
      @ferzzzzzz 7 หลายเดือนก่อน +4

      Ограничение по памяти О(1), о каком стеке речь. Ты не понял задачу, а уже успел наехать)

    • @MassEffecn
      @MassEffecn 7 หลายเดือนก่อน +2

      Это алгоритмическая секция, а не архитектурная. Тут как дали задание, так и решай, главное в ограничения влезь и не грузи мозги ни себе не людям.