Viktor
Подключил чатик к каналу, интересно как теперь будет выглядеть моя аватарка, так же или как в канале теперь?
Viktor
Так же. Хорошо.
Evgeniy
То же самое и у меня
Evgeniy
У меня уже полгода почти ютюб не показывает дату появления видео
Viktor
Придётся устроиться в Гугл и наконец переписать все нормально 😏😉
Порридж В Ко-ливинге
Viktor
Evgeniy
Viktor
https://www.google.ru/amp/s/www.wired.com/story/new-lawsuit-exposes-googles-desperation-to-improve-diversity/amp
Порридж В Ко-ливинге
V
а в чем подвох сегодняшней задачи?
V
кажется, что можно просто вставлять значения как в обычное дерево
Viktor
Я за квадрат решил начиная поиск от корня и особенно не парился.
Viktor
Не знаю можно ли хитрее.
Viktor
Без рекурсии, одним циклом.
Viktor
Evgeniy
Порридж В Ко-ливинге
Очень похоже
Без шуток, в проектах Я такое вижел
Порридж В Ко-ливинге
Опен сорсных
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Я познал говнокод
Порридж В Ко-ливинге
После часа изменени по одной строчке
Порридж В Ко-ливинге
Я психанул, удалил все и переписал по памяти логику
Порридж В Ко-ливинге
И она заработвлв с первого раза
V
мде, это я, конечно, затупил на сегодняшней задаче
V
а все из-за того, что не умею обращаться с поинтерами в го
Viktor
😂
Viktor
Интересно, почему сегодняшняя задача считается medium, а не easy. Она же спинным мозгом решается.
V
думаю, из-за более сложной структуры данных
V
изи задачи, все же, больше про то, что можно решить каким-нибудь остроумным способом, без знания того, что такое бинарное дерево
Philipp
Viktor
Ну спасибо...
не слушай его, там сидят литкодеры со стажем, которые в первой сотне по контестам
Philipp
А как вы задачу в островами решали? Хочу попробовать рекурсивно решить, типа если находишь 1, то проверяешь соседей и тд пока в 0 не упрешься. У меня с рекурсией проблемы.
Philipp
Evgeniy
Александр
всех приветствую! сегодняшняя задача у кого то решилась меньше чем за n*logn?
Иван
Ну судя по рантайму такой сложности достаточно)
Иван
Хотя я рантайму не особо доверяю
Иван
на leetcode
Null
Viktor
О как. Он автоматом репост делает! 😱
Alexander
открываю, читаю
когда появляется свободное время (выходные, например), что-то из понравившегося могу порешать
думаю, довольно популярный кейс
Viktor
Oleg
Я открываю в Notion через раз, но не решаю. Смотрю youtube больше - интерактивнее выходит
Viktor
Ну может умельцы из первой сотни наколхозили 🤣
Viktor
Александр
Viktor
Александр
https://leetcode.com/problems/construct-binary-search-tree-from-preorder-traversal/discuss/252273/C%2B%2B-O(n-log-n)-and-O(n)
Viktor
Ясно. Я просто вообще без рекурсии делал.
Viktor
size_t i = 0;
TreeNode* root = new TreeNode(preorder[i++]);
while (i < preorder.size()) {
TreeNode* next = new TreeNode(preorder[i++]);
TreeNode* prev = nullptr;
TreeNode* curr = root;
while (curr != nullptr) {
prev = curr;
if (curr->val > next->val) {
curr = curr->left;
} else {
curr = curr->right;
}
}
if (prev->val > next->val) {
prev->left = next;
} else {
prev->right = next;
}
}
return root;
Александр
вот у меня в принципе похожее решение
V
Банальный вопрос, но — как превратить binary tree в array?
Viktor
V
да, применительно тестов
Viktor
просто превратить в array, или сериализовать, это как раз тот самый preorder или inorder
V
хочу написать тест для моего решения, но что-то не могу сообразить, как прерврить дерево в массив чисел
V
сериализовать
V
в level order
V
то есть, где числа записаны по уровням дерева
Александр
***i
/ \
2*i 2*i + 1
Александр
ну ты понял
Александр
максимально колхозно
V
не понял )
Порридж В Ко-ливинге
Мда
V
допустим, я могу узнать уровень элемента, но как я получу его положение на текущем уровне?
Порридж В Ко-ливинге
Вот вы всякие умные вещи говорите
Порридж В Ко-ливинге
А я даже задание не понял
Viktor
Viktor
function levelSerialize(root) {
const q = [root];
const result = [];
while (q.length > 0) {
const front = q.shift();
result.push(front.val);
front.left && q.push(front.left);
front.right && q.push(front.right);
}
return result;
}
Viktor
через очередь
Александр
V
V
спасибо)
Viktor
похоже мы с @koshkin_a про одно и то же
Viktor