Вы не вошли.
Задача на вращение бинарного дерева!
Лёгкий уровень, поиск в глубину, бинарные деревья, примерно 18 минут.
Помимо ЛитКода продолжаю заниматься Реактом. Разобрал state variables, state setter functions и useState hook. Научился работать с callback функциями, lifting state up из одного компонента в другой (хз как лаконично и грамотно перевести). Научился рекурсивно создавать инстанс компонента, когда надо было отобразить вложенную структуру. Прочитал про классы компонентов (пора, наверное, попробовать перейти к таким от компонентов-функций в моём проекте).
Работодатель даёт доступ к платформе для ментального здоровья, я решил как-то понизить свою тревожность, потому что я тот ещё тревожный сырочек, и мысли "а что, если" порой мешают мне. Ну и просто ощущение смутной тревоги, иногда беспричинно, иногда из-за каких-то банальных вещей.
Зарегался на платформе, выбрал цель, прошёл опрос, приложение по итогам дало оценку общему состоянию. 47 из 100. Ок, это было в начале февраля, к марту улучшилось до 55 . Выбрал специалиста из тех, что посоветовало приложение по результатам опроса, очень приятная женщина. Первую сессию говорили о моём состоянии в общем, целях, что меня тревожит.
Первое, о чём она спросила и что посоветовала наладить в первую очередь - сон, еда и упражнения. К первой сессии у меня с ними всё было в порядке, а сейчас вот нарушил свой график, часто ложусь спать после 12 и сплю меньше 8 часов, мог бы чаще выходить на прогулку. Далее она посоветовала вести журнал тревожности. И когда приходят тревожные мысли, то записывать их - о чём, почему и давать оценку: это реальный повод тревожиться или нет. Вообще мне нравится, посмотрим, что из этого выйдет.
анон-левел-апер
Когда-то я писал, что побывал на двух побережьях и выложил фото с одного - дикий лес, пора бы выложить и со второго - старый город!
Итак, Бостон!
Подгадал приехать туда в октябре, в золотую осень, и не разочаровался. Больше, теперь я влюблён!
Он не очень большой, но живой, яркий и со своим очарованием.
Что мне очень нравится в нём, пожалуй, главная вещь - это его история и то, как плотно она переплетается с современностью. Конечно, город развивается всё время, и из моего любимого 18 века в самом Бостоне осталось не так чтобы много зданий, но почему-то этот дух ощущается очень живо, совсем рядом. Не покидает ощущение, что вот-вот увидишь в толпе треуголку, старинный чепчик или красный мундир
Сказать ещё можно очень много всего, например, про метро с милыми олдовыми трамвайчиками на одной из линий, кажется, самой старой. Про музей искусств, где выставлены предметы быта и части домов самых первых поселенцев (какими же могучими были деревья, из которых строили!), где за многими портретами скрываются увлекательнейшие биографии... Кстати, теперь у меня есть ещё один любимый художник - Джон Синглтон Копли, и его именем названа одна из станций метро. Интересно, что он был лоялистом и после революции вернулся в Лондон.
Также съездили погулять в лес. Оказалось, что 10 дней совсем мало для Бостона, не говоря уже о многочисленных старинных городках Новой Англии и природе восточного побережья.
Помимо Бостона были и в Салеме (том самом) и месте, что заслуживает отдельного упоминания - на фрегате 18 века USS Constitution, что до сих пор продолжает ходить под парусами
анон-левел-апер-путешественник
Поучаствовал в субботнем контесте на ЛитКоде, это когда за полтора часа надо решить 4 задачи на алгоритмы и структуры данных, награда не за первые места символическая, но шанс потренироваться на время в новой задаче.
К началу контеста ЛитКод прилёг, и минут 40 не мог прийти в себя, но всё же потом ожил.
Пока каждый раз у меня одно и тот же: я быстро решаю первую задачу лёгкого уровня, оставшееся время мучаю следующую и ломаюсь на очередном граничном условии. В этот раз я не мог понять, почему из массива [998, 2] можно сделать массив, отсортированный по возрастанию, если из первого элемента вычесть целое число, которое строго меньше (вычитаем 997 и получаем массив [1, 2]), а из массива [17, 2] - нельзя
Утром ездил на фехтование. Нас было четверо, включая тренера, разбирали интересные вещи для так называемого half-swording. Это когда одной рукой держишь меч за рукоять как обычно, а второй берёшь его за лезвие и используешь сначала для защиты от удара, а потом, если противник не отступил, переходишь на рукопашную - ударить противника рукояткой в лицо, заблокировать своим мечом его меч/руки, после этого можно перейти к бросанию на землю и так далее.
Импровизировали, и я очень доволен, что уже получается в разных вариантах без размышлений применять то, чему научился, используя меч, который держу обеими руками, как рычаг, тренер меня похвалил
На фехтование ещё ходит англичанин в годах, который знаком с многими боевыми искусствами и видами оружия и всегда рад объяснить и показать какую-то нетривиальную идею. Сегодня в поединке он хотел ударить меня в грудь клинком снизу вверх, держа его обеими руками, я заблокировал это, выставив свой клинок перпендикулярно его, но он тут же перенаправил свой меч сверху вниз, и это вышло очень натурально и быстро, мне понравилась идея, я о таком раньше и не думал, хотя казалось бы
анон-левел-апер
В этот раз я не мог понять, почему из массива [998, 2] можно сделать массив, отсортированный по возрастанию, если из первого элемента вычесть целое число, которое строго меньше (вычитаем 997 и получаем массив [1, 2]), а из массива [17, 2] - нельзя
А почему нельзя? Вычитаем 16 и получаем [1,2] по аналогии?
Я пока и сам не понял, почему так. Сначала моё решение свалилось на кейсе [998, 2], я добавил обработку в код, и решение свалилось на кейсе [17, 2], так и не увидел разницы. Надо будет разобрать решение и пройти дебаггером.
А почему нельзя? Вычитаем 16 и получаем [1,2] по аналогии?
Похоже, я знаю, в чём проблема с массивом [17, 2].
В дискуссии кто-то задал такой же вопрос, и там ответили, что:
вычитать из элементов массива можно только простые числа, строго меньше самого элемента массива (сейчас я понял, что упустил это, когда читал условие)
элементы массива должны быть больше единицы
Но по второму пункту не совсем очевидно. В условии сказано, что исходный массив состоит из элементов величиной от 1 до 100. Но не сказано прямо, что элементы результирующего массива должны также удовлетворять этому ограничению
Так что единственное ближайшее к 17 простое число, вычитание которого сделало бы массив отсортированным по возрастанию, не подходит, и при таких условиях массив стать отсортированным не может.
А вот в случае [998, 2] ближайшее к первому элементу простое число, которое строго меньше - это 997.
998 - 997 = 1 => [1, 2].
Вот в чём разница
Я всё ещё пока не совсем представляю, как решить эту задачу, оставлю на попозже. А заодно потренирую скилл более внимательного чтения условия.
Лёгкий уровень, массивы и битовая манипуляция, 30 минут.
Недавно подался на позицию питон-разработчика, описание и требования подходят под мои скиллы и опыт.
Пишут из компании: мы хотим поговорить с вами! Насчёт вакансии Senior QA Automation engineer! Выберите время!
Я отвечал, что мол, простите, я подавался на питон-разработчика, но указал свободное время для звонка.
На письмо нет ответа.
На следующий день звонят: здравствуйте, мы по поводу позиции Senior QA Automation engineer!
Я: здравствуйте, а я подавался на питон-девелопера, я на ваше письмо ответил, что хочу на позицию питон-девелопер.
Рекрутёр: но наш хайринг-менеджер считает, что вы лучше подходите на другую позицию!
Я: я бы хотел свичнуться в разработчики (Так-то у меня и в резюме сказано, что хочу свичнуться).
Рекрутёр: жаль, очень жаль, мы свяжемся с вами, если будет открыта такая позиция! Хорошего дня!
Как же бесит, а.
анон-левел-апер
Снова начались классы по классическому фехтованию на шпаге И я понял, что то ли отвык, пока занимался только двуручным мечом, то ли всё ещё чересчур медленный
Но на классе исторического фехтования, где я оказался единственным пришедшим студентом в тот вечер - почему и была шпага, а не двуручник - дела всё же пошли получше, и я уверился, что не безнадёжен. А может, раскачался наконец.
На прошлый же класс по историчке пришёл новый чувак. Вообще он ходил раньше, давно, до меня, а теперь пришёл после перерыва. А перерыв - потому что у него было сотрясение мозга. Полученное на фехтовании. И у милого пожилого англичанина недавний перерыв тоже был из-за сотрясения мозга. Тоже полученного на фехтовании. Они не сказали, как именно это случилось, но подозреваю, что на турнире.
Тренер философски сказал, что все рано или поздно что-то себе ломают, и научил, что когда противник атакует мечом твою голову, не надо отворачиваться, а надо наоборот, чтобы меч попал по передней части маски с металлом, а не по затылку. Потому что даже защита затылка на HEMA-шлеме может быть недостаточна для защиты от сотрясения при сильном ударе
Тренировка прошла очень хорошо, я научился новому, и меня во время дуэльных поединков не валяли по земле, как на прошлой неделе. Я смог выкрутить руку одному из соперников, после того, как защитился от его атаки, и приставить меч к его горлу, а там и время поединка вышло.
анон-левел-апер
Отредактировано (2023-04-02 09:15:41)
Лёгкий уровень, связанные списки, хэш-таблицы и техника двух указателей, 40 минут.
анон-левел-апер
То ли я разучился управлять временем, то ли надо делать это лучше. Некоторые дела стали пожирать всё время, которое не занято чем-то необходимым.
Наверное, это потому, что я делаю до победного конца, а потом ещё читаю/пробую что-то похожее, потому что интересно или чтобы ещё лучше разобраться. Порой спонтанность вовсе не помогает.
Попробую вернуться к расписанию дел и не вылезать за временные рамки для каждого дела, иначе это будет только ЛитКод и попытки просто отдохнуть от него вместо ЛитКода, дизайна систем и Линукса (и перерывов на отдых). А, ну и вместо чтения книг и других хобби.
И вместе с принятием решения о лучшей самоорганизации я записался на кружок по фото класс
Всего три занятия, впрочем.
анон-левел-апер
Сегодня решил отдохнуть от литкода, к тому же там задача на битовые манипуляции, с которыми я не очень знаком так-то.
Зато разобрал задачу по системному дизайну (дизайн чата, хех) и наконец понял, как в реакте делать поле ввода и кнопку одной строкой (бутстрап). Правда, теперь у меня поле ввода скукожилось вполовину, так что буду разбираться, как сделать его снова нормальной ширины.
Переставил швейный манекен из одной комнаты в другую, надел на него полуготовое платье. Теперь то и дело мне внезапно мерещится, что кто-то стоит рядом! Смотрит! Ну да, это стоит манекен
В прошлый раз такие нескучные ощущения были, когда я надел на манекен длинный и широкий чёрный плащ с капюшоном и оставил в комнате с выключенным светом, в которую тем не менее заходил то и дело. Капюшон при этом ещё и склонился вниз из-за тяжести ткани.
Я было привык уже к этой угрюмой фигуре, а теперь свежие ощущения
анон-левел-апер
Лёгкий уровень, битовые манипуляции, 1 час 11 минут, пришлось неслабо поскрипеть мозгами.
Вообще сложилось впечатление, что к задачам на битовые манипуляции труднее найти подход с помощью интуиции, но, возможно, это из-за того, что я мало их решал. На собеседованиях они ни разу не попадались, насколько помню. Посмотрел, где такое обычно применяется, и в принципе железо, шифрование и сжатие данных далековаты от сферы моих интересов
анон-левел-апер
Кстати, получил внезапный привет из любимого 18 века, когда читал про битовые манипуляции.
Есть два (ок, третий - переключаемый) порядка записи байтов в памяти: с начала (слева направо, от старшего, наиболее значимого байта, к младшему) и с конца (наоборот). Они называются big-endian и little-endian соответственно.
Их названия отсылают к "Путешествиям Гулливера" англо-ирландского писателя Дж. Свифта, где описан конфликт между теми, кто разбивает яйца с острого конца (Little-Endians, Остроконечники) и теми, кто с тупого (Big-Endians, Тупоконечники).
Не могу сказать, что мне нравится эта книга, во "взрослом" переводе - так особенно, но всё же эта отсылка кажется милой.
анон-левел-апер
И чтобы ненадолго отвлечься от литкода и прочего левел-апа, вернусь мыслями на восточное побережье и покажу Салем (тот самый)
Он недалеко от Бостона, несколько остановок на пригородном поезде. Мы приехали погулять в рабочий день, так что народа на улицах было мало.
Салем украл моё сердечко практически сразу Тихие улицы со старыми домами, на многих из которых таблички с датой постройки пару-тройку веков назад и именем тогдашнего хозяина, высокие раскидистые деревья, старинные маленькие кладбища.
Салем ещё и порт, так что у старой пристани стоит здание таможни и дом одного из богатешйих жителей того времени, капитана, который сделал состояние на торговле.
В музей процесса над ведьмами не пошли, гугл сказал, что там то ли кукольное представление, то ли записанный фильм, и это не особо интересно. Зато вдоволь погуляли и полюбовались светлой стороной города.
Прогуливаясь по этому местечку у бухты, поймала на себя на мысли, что вспоминаю лавкрафтовские рассказы, действие некоторых как раз происходит в этих местах. Старые дома у самой воды, молча хранящие тайны
В несколько интересных мест в тот раз уже не было времени дойти, но всё равно я осталась в восторге
И в тот же день мы посетили ещё одно интересное и чудесное место - старейший корабль на плаву: парусный фрегат "Конституция", но о нём в следующий раз.
анон-левел-апер-путешественник
Съездил на дополнительное занятие по фехтованию, рубили татами-маты из бамбука острыми мечами.
Сначала было трудно, потом понял, на каком расстоянии стоять, как именно рубить (делали по диагонали) и где должна быть воображаемая цель (слегка за физической целью, свёрнутым в рулон вертикально закреплённым на стенде матом).
Конечно же, одно дело практиковаться с тренировочными мечами, где главное - тренировать защиты, нападения, тайминг и шаги, и совсем другое - целенаправленно рубить что-то острым мечом насквозь, и я очень рад, что попробовал и теперь знаю, как это. Тренер сказал, что по плотности и толщине эти маты примерно как рука (не считая кости).
С двуручным мечом было тяжеловато, один раз клинок застрял весьма глубоко (почти разрубил!) Полностью одним движением срубить часть мата у нас всех получалось меньше, чем в половине случаев, хех.
А ещё я впервые попробовал катану, и это было офигенно!
Ей рубить оказалось чуть полегче, нежели двуручным мечом, да и вес, конечно, другой.
анон-левел-апер-фехтовальщик
Лёгкий уровень, строки, два указателя, 40 минут на два способа + вариации во втором способе
Вообще я рад, что уже иногда происходит что-то вроде озарения, когда смотришь на задачу и вдруг понимаешь, какое решение или вариант решения можно применить. Раньше, сразу после долгого перерыва, я мог потратить время и так и не сообразить, что же за подход. Или сообразить, но после нескольких неудачных попыток решения.
Практика делает своё дело
анон-левел-апер
Лёгкий уровень, бинарный поиск, математика, 30 минут
Лёгкий уровень, бинарные деревья, поиск в глубину, стек, 7 минут на рекурсивную версию + 18 минут на итеративную = 25 минут
Разбирал по системному дизайну создание web crawler, поискового робота, анализирующего веб-страницы. Автор упоминает фильтр Блума (структура данных для проверки, что данный элемент не входит в данное множество) для проверки уникальности URL и говорит, что он более эффективен в плане памяти по сравнению с хэш-таблицей, но не объясняет ничего подробнее. На собеседовании могут спросить про это, поэтому надо бы разобраться получше, чтобы не оказалось, что я использую термин, но не могу объяснить в деталях, почему стоит использовать что-то в конкретной ситуации и как это вообще работает. То же и с хэш-таблицами кстати.
анон-левел-апер
Итак, на прошлой неделе ЛитКод занял 125 минут (2 часа и 5 минут), решил 3 задачи, в среднем 41 минуту на задачу. Можно было бы и лучше, конечно.
На выходных был отличный пикник с друзьями в очень красивом месте, я впервые попробовал поиграть в теннис, понравилось, но правила я никто почти не соблюдал, просто били ракеткой по мячику и бегали. Видели лошадей - рядом курсы верховой езды, одна милая женщина даже подошла показать нам коняшку поближе, увидев, что мы смотрим
Не выспался, в итоге в понедельник голова еле варила, но всё же я смог вымучить решение для треугольника Паскаля, после чего что-то свалился полумёртвый.
Лёгкий уровень, массивы, динамическое программирование, 38 минут
Время и память квадратичные.
анон-левел-апер
Сегодня чувствовал себя таким же упоротым, как и вчера, но дополз до задачи.
Лёгкий уровень, бинарные деревья, рекурсивный подход (итеративный в другой день, сегодня уже не смог), 35 минут -_-
анон-левел-апер
Сон и отдых творят чудеса, и я снова чувствую себя человеком, который может ясно мыслить
Та же задача, что и вчера: лёгкий уровень, бинарные деревья, но итеративный подход в двух вариантах, 12 минут + 5 минут.
анон-левел-апер
Лёгкий уровень, массивы, два указателя, сортировка, 1 час 20 минут (получилось не с первой попытки -_-)
Стоит не выспаться и/или понервничать, ко мне цепляется головная боль и не уходит порой несколько дней, ещё и приводя с собой бессонницу, что только усугубляет проблему. Всё же левел-апаюсь, но вместо ЛитКода, системного дизайна, пет-проекта и Линукса я обычно делаю только что-то одно. Я перенервничал и не выспался во вторник, и только сейчас, кажется, снова пришёл в норму.
анон-левел-апер
Хотел побурчать на задачи, как они тяжело дались и какие они вообще упоротые, но съездил на фехтование, проветрился и расслабился. А ещё был чудесный тёплый весенний вечер, и в воздухе так нежно и чудесно пахло глицинией, что настроения бурчать вовсе не осталось
анон-левел-апер
Кто попал тренеру шпагой в лицо без маски - тот я
Вообще мы занимались на шпагах с женщиной-тренером, которая готовится к экзаменам на сертификат, studen teacher, так сказать, а он в тот вечер учил её учить. У меня никак не получалось выполнить одно движение правильно, у неё не получалось мне его объяснить, и тренер сказал мне, мол, давай я сейчас тебе объясню движение, а ты (ей) смотри.
Первый раз прошло нормально. Второй раз прошло нормально, и у меня начало получаться как надо. В третий раз то ли дистанция между нами сократилась, то ли я криворук вот это наиболее вероятно, но вместо того, чтобы уколоть тренера шпагой в верхнюю правую часть груди, я ударила его в лицо.
К счастью, ничего серьёзного, я попала ему чуть выше верхней губы, обошлось без крови, осталась покрасневшая небольшая отметина, и шпага была конечно же не острая, но наверняка это было очень больно. Я начала извиняться, на что тренер махнул рукой и сказал, что это он сам виноват, что не надел маску и не сказал мне двигаться очень медленно. Но, конечно, очень жаль и очень неловко
На следующий день на тренировке он даже посмеялся, мол, зацените, как анон-левел-апер вчера разбушевалась и двинула мне по лицу шпагой лол кек. Когда я спросила, как он себя чувствует, он сказал, что всё ок и ничего серьёзного
Но ещё пару раз напомнил всем про технику безопасности
анон-левел-апер-фехтовальщик
Хотел было написать про задачи, что простые идут уже за 5-10 минут, что я начала решать средний уровень, и средний уровень внезапно кажется легче, чем в прошлый раз, но что-то совсем устал и уехал в путешествие в Йеллоустоунский парк.
анон-левел-апер
Отредактировано (2023-06-15 01:56:01)
Выбирал-выбирал себе шпагу для HEMA и наконец выбрал, и наконец она приехала! И ножны хороши
анон-левел-апер-фехтовальщик