Большая задача: Class AbstractList
Комментарии (345)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
evggenn
7 марта, 11:32
делал через bfs и очередь, claude code одобрил мое решение), но валидатор не пропустил - ему почему-то конструктор мой не понравился...
0
александр пьянов
6 декабря 2024, 07:16
Выполнил без рекурсии вот таким способом, для оптимизации можно в конце цикла удалять элементы и чуть поменять условие - будет все быстро
0
SomeBody098веник в бане
16 сентября 2024, 15:01
наикрутейшая задача, сначала вообще не понятно что где и когда, но когда почитаешь про бинарные деревья и вчитаешься в условие - то наконец понимаешь что от тебя требуют 😊
вот вам статьи которые мне помогли:
Бинарные деревья — решение алгоритмических задач
Бинарные деревья поиска и рекурсия – это просто
+2
АндрейExpert
14 августа 2024, 18:06
Сделал такую функцию для поиска:
Из нее можно искать что угодно.
1. Находим нужный нам элемент, String s = "10"
2. Находим все елементы(количество)
3. Находим невалидные ентити
Из минусов - рекурсия. Как вы потом узнаете , на проектах рекурсию не используют(крайне редко).
Решение от JR заслуживает чтобы его не просто глянуть а и изучить. Во первых когда придете на коммерческий проект - там будет такая же требухня. И вам никто не даст разрешение на удаление всего и написать все с чистого листка(правило - работает не трогай). Привыкайте к этому. Вам придется разбираться и еще самому догавнокодывать...
0
Long_byte
12 августа 2024, 18:04
рекурсивный обход это в глубину а через очередь это обход в ширину?
0
АндрейExpert
14 августа 2024, 16:57
Стек обход в глубину, очередь обход в ширину.
Свежайшая статья на хабре
0
Кот
13 мая 2024, 10:23
Фуух, спустя два дня всё-таки закрыл эту задачу. Что могу сказать:
1. Ощущения непередаваемые. Когда решаешь "зеленые" или "желтые" задачи, тоже получаешь лёгкое удовлетворение, но это не сравнится по сравнению с закрытием сложной "красной" задачи, которую решал несколько часов/дней/недель.
2. Стоит ли решать? ДА. Здесь согласен с very junior java developer, эта задача очень сильно прокачивает абстрактное мышление и не ограничивает в выборе реализации. Я например решил используя два списка.
3. Доп. материалы.
Мне очень помог Р. Лафоре и его "Алгоритмы и структуры данных", а конкретно часть про двоичные деревья.
4. 16 элемент добавляйте к 1, валидатор пропускает.
5. Впервые у меня в коде меньше строк чем в правильном решении!😅
5. Ну и конечно желаю удачи в обучении. Если вы здесь, значит вы уже прошли половину пути!
+2
SomeBody098веник в бане
16 сентября 2024, 12:25
да, книжка Лафоре тоже мне помогла, да задача крута )))
0
Anonymous #3369914Expert
21 апреля 2024, 07:32
Решать однозначно, но своим методом. Заранее правильное решение лучше не смотреть, оно слишком накрученное. Все решается значительно проще и короче. Максимум, что можно глянуть в привильном решение это переменные, для понимания общей логики (и того как обьекты хранятся и между собой связанны). И да, прямо хорошо разберитесь в условиях. Они хреновые, согласен, ориентируйтесь на картинки.
0
Евгений N
17 марта 2024, 15:02
2JR:
извините, вообще не понял что в этих задачах происходит, что требуется и как их решать. и даже не смог разобраться в правильном решении. концепцию использования "queue" не уловил.
просьба пересмотреть этот блок.
0
Long_byte
12 августа 2024, 17:52
в этих задачках использование queue очень помогает например метод add сначала добавляем в queue корневой узел root потом пока queue не пустой! получаем первый добавленный элемент и удаляем его из queue это у нас root у корневого узла проверяем если нет возможности иметь потомков и нет ни одного потомка то нужно сделать так чтобы он имел возможность иметь потомков availableToAddLeftChildren = true availableToAddRightChildren = true;
если это условие не проходит проверяем можем ли мы добавить левого потомка если нет то правого если нет значит уже есть левый и правый потомок добавляем в очередь сначала левого потомка потом правого и так далее. queue желательно использовать локальные на все методы свои
+1
Юрій Якимчук
14 марта 2024, 18:03
Після квесту мультітредінг "велика задача" з п'яти задач?
Ой ліл
0
Roman
9 февраля 2024, 14:16
Условия написаны так, что в деталях не понятно чего требуется сделать. Проще выполнить задачу своими методами чисто для себя, как сам понимаешь условия и наплевать на валидатор, двигать дальше.
0