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
Порридж В Ко-ливинге
Ага... у них тема на форуме по поводу скрытия даты уже давным-давно висит
Где-то в исходниках стоит коммент // TODO: Fix date disappearing
V
а в чем подвох сегодняшней задачи?
Порридж В Ко-ливинге
а в чем подвох сегодняшней задачи?
В том что я вчерашнюю еще не решил 🤣
V
кажется, что можно просто вставлять значения как в обычное дерево
Viktor
Я за квадрат решил начиная поиск от корня и особенно не парился.
Viktor
Не знаю можно ли хитрее.
Viktor
Без рекурсии, одним циклом.
Порридж В Ко-ливинге
Очень похоже
Без шуток, в проектах Я такое вижел
Порридж В Ко-ливинге
Опен сорсных
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Я познал говнокод
Порридж В Ко-ливинге
После часа изменени по одной строчке
Порридж В Ко-ливинге
Я психанул, удалил все и переписал по памяти логику
Порридж В Ко-ливинге
И она заработвлв с первого раза
V
мде, это я, конечно, затупил на сегодняшней задаче
V
а все из-за того, что не умею обращаться с поинтерами в го
Viktor
😂
Viktor
Интересно, почему сегодняшняя задача считается medium, а не easy. Она же спинным мозгом решается.
V
думаю, из-за более сложной структуры данных
V
изи задачи, все же, больше про то, что можно решить каким-нибудь остроумным способом, без знания того, что такое бинарное дерево
Viktor
Ну спасибо...
не слушай его, там сидят литкодеры со стажем, которые в первой сотне по контестам
Philipp
А как вы задачу в островами решали? Хочу попробовать рекурсивно решить, типа если находишь 1, то проверяешь соседей и тд пока в 0 не упрешься. У меня с рекурсией проблемы.
Evgeniy
А как вы задачу в островами решали? Хочу попробовать рекурсивно решить, типа если находишь 1, то проверяешь соседей и тд пока в 0 не упрешься. У меня с рекурсией проблемы.
Да, примерно так и есть. Перебираешь всю сетку по строкам и столбцам. Если находишь 1, то увеличиваешь счётчик островов. Потом заходишь во вспомогательную функцию. Проверяешь там граничные значения (в том числе на значение 0). И если всё в порядке, то затираешь эту клетку нулём. И перебираешь у неё все соседние клетки рекурсивно, с заходом в себя. В итоге все единицы у острова будут затёрты рано или поздно. Через какое-то время ты наткнёшься на другой остров. И так далее.
Александр
всех приветствую! сегодняшняя задача у кого то решилась меньше чем за n*logn?
Иван
Ну судя по рантайму такой сложности достаточно)
Иван
Хотя я рантайму не особо доверяю
Иван
на leetcode
Null
Viktor
О как. Он автоматом репост делает! 😱
Alexander
открываю, читаю когда появляется свободное время (выходные, например), что-то из понравившегося могу порешать думаю, довольно популярный кейс
Oleg
Я открываю в Notion через раз, но не решаю. Смотрю youtube больше - интерактивнее выходит
Viktor
всех приветствую! сегодняшняя задача у кого то решилась меньше чем за n*logn?
Ничего хитрее как расставить n нод в дереве, на каждый проход log n соответсвенно, что-то сложно представить
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
Банальный вопрос, но — как превратить binary tree в array?
ты применительно к этой задаче или нет?
V
да, применительно тестов
Viktor
просто превратить в array, или сериализовать, это как раз тот самый preorder или inorder
V
хочу написать тест для моего решения, но что-то не могу сообразить, как прерврить дерево в массив чисел
V
сериализовать
V
в level order
V
то есть, где числа записаны по уровням дерева
Александр
***i / \ 2*i 2*i + 1
Александр
ну ты понял
Александр
максимально колхозно
V
не понял )
Порридж В Ко-ливинге
Мда
V
допустим, я могу узнать уровень элемента, но как я получу его положение на текущем уровне?
Порридж В Ко-ливинге
Вот вы всякие умные вещи говорите
Порридж В Ко-ливинге
А я даже задание не понял
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
спасибо)
Viktor
похоже мы с @koshkin_a про одно и то же
Viktor
А я даже задание не понял
которое с деревом?