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

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

КОМЕНТАРІ • 48

  • @sorokinpavel
    @sorokinpavel  26 днів тому

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

  • @anjelomanoranjan
    @anjelomanoranjan 6 місяців тому +2

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

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

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

  • @makhmudov4858
    @makhmudov4858 Місяць тому

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

  • @DP-ym4dg
    @DP-ym4dg 5 днів тому +1

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

    • @DP-ym4dg
      @DP-ym4dg 5 днів тому +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;
    }

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

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

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

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

  • @ArtemKotov-r5u
    @ArtemKotov-r5u 4 місяці тому +4

    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ы 19 днів тому

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

  • @РоманПыхов-я2ж
    @РоманПыхов-я2ж 6 місяців тому +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  6 місяців тому

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

  • @kirillzhukov1675
    @kirillzhukov1675 4 місяці тому

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

  • @JavaDevOld
    @JavaDevOld Місяць тому

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

  • @ПавелКононов-м6б
    @ПавелКононов-м6б 6 місяців тому

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

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

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

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

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

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

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

    • @MuradMatnazarov-fj1cq
      @MuradMatnazarov-fj1cq 5 місяців тому +2

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

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

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

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

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

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

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

  • @МакарПелогейко
    @МакарПелогейко 6 місяців тому

    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  6 місяців тому

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

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

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

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

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

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

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

    • @Макс-ч7ъ7ы
      @Макс-ч7ъ7ы 6 місяців тому

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

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

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

    • @Vladimir-pz5eo
      @Vladimir-pz5eo 3 місяці тому

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

  • @MuradMatnazarov-fj1cq
    @MuradMatnazarov-fj1cq 5 місяців тому

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

    • @MuradMatnazarov-fj1cq
      @MuradMatnazarov-fj1cq 5 місяців тому

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

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

    топ)

  • @ПавелКононов-м6б
    @ПавелКононов-м6б 6 місяців тому

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

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

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

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

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

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

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

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

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

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

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

  • @wildjoe6259
    @wildjoe6259 6 місяців тому +3

    Спасибо!

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

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

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

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

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

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

    • @ferzzzzzz
      @ferzzzzzz 6 місяців тому +3

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

    • @MassEffecn
      @MassEffecn 6 місяців тому +2

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