Untitled
1 00:00:00,000 --> 00:00:01,996 В принципе, я подготовил не самые лёгкие задачи. 2 00:00:03,360 --> 00:00:08,360 Окей, ну тогда, я думаю, ты справишься. Ну, звучит правильно. 3 00:00:08,360 --> 00:00:09,360 Вроде бы похоже, но.. 4 00:00:10,080 --> 00:00:11,080 Хорошо, всё отлично, 5 00:00:11,080 --> 00:00:12,080 я засчитаю эту задачу, ты решил, 6 00:00:13,440 --> 00:00:14,440 да, Женя? 7 00:00:16,520 --> 00:00:17,520 Этих вещей не знаю. 8 00:00:21,440 --> 00:00:22,440 Если не предупредить интервью, 9 00:00:23,160 --> 00:00:25,560 в первой части здесь мы поговорим про твой опыт, 10 00:00:25,760 --> 00:00:26,760 про предыдущий проект, 11 00:00:27,040 --> 00:00:30,480 о том, какая у тебя задача и в конце отвечу на вопросы. 12 00:00:32,560 --> 00:00:36,120 им, видимо. Расскажешь, может быть, про предыдущий проект? 13 00:00:36,520 --> 00:00:39,480 Там в принципе довольно подробно я все расписал. 14 00:00:40,200 --> 00:00:42,560 Компания в целом занималась транспортной инфраструктурой. 15 00:00:43,240 --> 00:00:45,120 То есть у нас там рамки на объезды в Москву. 16 00:00:45,840 --> 00:00:49,960 Там классифицируются транспортные средства, 17 00:00:50,080 --> 00:00:51,080 которые проезжают, 18 00:00:51,160 --> 00:00:52,160 то есть там легковушка, 19 00:00:52,440 --> 00:00:53,440 это или грузовик, 20 00:00:53,800 --> 00:00:56,100 собираются номера и, соответственно, собирается статистика в виде табличных 21 00:00:56,100 --> 00:00:57,100 данных, 22 00:00:58,800 --> 00:00:59,800 кто куда проезжал. 23 00:01:00,160 --> 00:01:01,160 Я делал, получается, 24 00:01:01,840 --> 00:01:02,840 интерфейс, 25 00:01:03,360 --> 00:01:07,120 Смотреть со всех объектов вживую видео. 26 00:01:07,760 --> 00:01:08,760 Потом делал интерфейс, 27 00:01:09,040 --> 00:01:10,040 который позволял смотреть архив. 28 00:01:11,840 --> 00:01:13,839 Естественно, все там кнопки, 29 00:01:15,880 --> 00:01:16,880 элементы онлайна, чтобы управлять. 30 00:01:18,440 --> 00:01:20,720 Смотреть по архиву, смотреть наличие видео. 31 00:01:22,040 --> 00:01:23,040 Также делал возможность выгрузки, 32 00:01:26,600 --> 00:01:27,600 формирования таблиц, 33 00:01:28,000 --> 00:01:29,000 просмотра таблиц, 34 00:01:29,040 --> 00:01:31,040 ну что вообще, какие проезды, 35 00:01:31,040 --> 00:01:36,200 возможность помечать какие-то проезды как ошибочно распознанные. 36 00:01:36,800 --> 00:01:40,560 И делал такую табличку со статистикой по всем проездам, 37 00:01:40,680 --> 00:01:42,480 какие машины проезжали, сколько проезжали, 38 00:01:42,680 --> 00:01:45,920 то есть возможность настраивать под себя вывод, 39 00:01:46,080 --> 00:01:47,080 то есть какую статистику смотреть, 40 00:01:47,600 --> 00:01:49,599 каким объектом, что именно показывает. 41 00:01:51,000 --> 00:01:54,506 Вот ты говоришь про систему мониторинга. Абонент временно 42 00:01:54,506 --> 00:01:55,506 недоступен 43 00:01:55,760 --> 00:01:57,560 Программное обеспечение для проблем не ведем. Это уже другое проект, я так 44 00:01:57,560 --> 00:01:58,560 понимаю. 45 00:01:59,480 --> 00:02:00,480 Программное обеспечение. 46 00:02:00,560 --> 00:02:01,560 У нас похожие проекты. 47 00:02:02,800 --> 00:02:03,800 То, что я сейчас рассказал, 48 00:02:04,240 --> 00:02:05,240 это проект для авто, 49 00:02:06,920 --> 00:02:07,920 которые въезжают в Москву. 50 00:02:08,400 --> 00:02:10,740 Есть похожий проект для железных дорог и похожий проект для 51 00:02:10,740 --> 00:02:11,740 авторегистраторов, 52 00:02:13,200 --> 00:02:14,200 где распознается, 53 00:02:15,000 --> 00:02:16,000 водитель курит, не курит, 54 00:02:16,320 --> 00:02:17,320 не засыпает ли за рулем. 55 00:02:17,440 --> 00:02:20,440 А ВМС, то, что в резюме написано, 56 00:02:20,440 --> 00:02:21,440 это общая такая система, 57 00:02:21,440 --> 00:02:24,280 которую мы начали уже под конец разрабатывать, чтобы можно было ее, 58 00:02:24,920 --> 00:02:25,920 грубо говоря, 59 00:02:26,280 --> 00:02:28,440 просто переделать под нового какого-то заказчика, 60 00:02:28,720 --> 00:02:29,720 потому что все проекты похожие. 61 00:02:30,760 --> 00:02:34,706 Это ВМС, это задумывалась как такая общая система, где будет просмотр 62 00:02:34,706 --> 00:02:38,940 ВВДЦ, где будет тоже возможность какие-то объекты добавлять, 63 00:02:39,200 --> 00:02:40,200 но она будет такая обобщенная, 64 00:02:40,600 --> 00:02:42,280 то есть не под железные дороги, не под авто, 65 00:02:42,480 --> 00:02:43,480 а в целом под любой объект. 66 00:02:44,280 --> 00:02:48,591 Ну, я так понимаю, здесь больше упор именно на работу с видеопотоком. 67 00:02:48,591 --> 00:02:51,591 Ну, видео, таблички, 68 00:02:51,591 --> 00:02:55,991 представление данных, то есть все в принципе такое, да. 69 00:02:55,991 --> 00:02:57,987 Но это, то есть не в открытом доступе, 70 00:02:57,987 --> 00:03:00,387 это именно под такие полугосударственные заказы. 71 00:03:06,160 --> 00:03:07,160 Ну, 72 00:03:10,720 --> 00:03:14,120 мы в целом двигались в сторону модульной какой-то архитектуры, 73 00:03:14,120 --> 00:03:18,080 просто в какой-то момент задумывались более конкретно над импортами, 74 00:03:18,600 --> 00:03:23,840 чтобы прям конкретно отделить так же логику какую-то от представления, 75 00:03:24,440 --> 00:03:25,440 вот, от ЗИУшки. 76 00:03:25,800 --> 00:03:26,800 Вот, поэтому, 77 00:03:27,240 --> 00:03:30,240 да, вот решили попробовать в эту сторону. 78 00:03:33,200 --> 00:03:34,200 Преимущества, в принципе, 79 00:03:34,960 --> 00:03:38,840 похожи на ту же самую модульную архитектуру, то есть просто четко 80 00:03:38,840 --> 00:03:39,840 понятно, 81 00:03:40,000 --> 00:03:41,000 где смотреть на какую, 82 00:03:41,720 --> 00:03:43,720 ну, где искать какую логику, 83 00:03:45,160 --> 00:03:46,160 четко порядок зависимости, 84 00:03:47,600 --> 00:03:49,600 вот, четко. 85 00:03:51,680 --> 00:03:52,680 Как это выглядело на практике? 86 00:03:54,480 --> 00:03:55,480 Идея в том, 87 00:03:55,560 --> 00:03:57,560 что да, есть каркас вообще целиковый, 88 00:03:59,120 --> 00:04:01,000 вот это можно сказать там хэдер входит, 89 00:04:01,480 --> 00:04:03,480 футер и так далее. 90 00:04:03,480 --> 00:04:04,480 Есть дальше сами страницы, 91 00:04:04,880 --> 00:04:06,880 вот, они уже на уровень ниже, 92 00:04:08,200 --> 00:04:09,200 они встраивались у нас динамически. 93 00:04:10,280 --> 00:04:13,320 И дальше какие-то отдельные, допустим там, 94 00:04:13,680 --> 00:04:14,680 выбор авто, 95 00:04:15,040 --> 00:04:16,040 там поиск, фильтрация авто, 96 00:04:17,160 --> 00:04:18,160 это одна получается фича, 97 00:04:19,720 --> 00:04:25,720 вот. Потом там вывод всего этого, это другая фича, вот. И они, 98 00:04:25,720 --> 00:04:28,572 естественно, уже там для какой-то страницы. Вот у тебя в стыке еще 99 00:04:28,572 --> 00:04:30,572 написано Использовал зод, 100 00:04:30,572 --> 00:04:31,572 насколько я помню, 101 00:04:32,000 --> 00:04:33,000 для валидации. 102 00:04:34,200 --> 00:04:35,200 Да, зод это очень удобно. 103 00:04:36,800 --> 00:04:40,260 У нас использовался RTK Query и очень удобно все запросы описывались в 104 00:04:40,260 --> 00:04:41,260 валидации. 105 00:04:44,080 --> 00:04:45,080 У нас было два варианта. 106 00:04:45,080 --> 00:04:47,160 Сначала использовался Joy для валидации, 107 00:04:47,360 --> 00:04:50,320 потом просто с зодом гораздо меньше кода получается. 108 00:04:51,080 --> 00:04:52,080 И не страдал. 109 00:04:56,480 --> 00:05:00,680 А как вы типизировали именно респонс бэка? 110 00:05:01,240 --> 00:05:02,240 Модель где брали? 111 00:05:10,560 --> 00:05:11,560 А на бэке какой бэквал? 112 00:05:14,240 --> 00:05:15,240 Не предоставляли? 113 00:05:15,840 --> 00:05:16,840 Ну как слайдер там может быть? 114 00:05:22,640 --> 00:05:24,560 Я не понимал вообще в принципе что должно приходить, 115 00:05:24,720 --> 00:05:25,720 даже если там не было описано. 116 00:05:26,440 --> 00:05:27,440 Не, ну я про то, что, 117 00:05:27,440 --> 00:05:29,640 типа, вот если, например, бэк отправит что-то, 118 00:05:30,000 --> 00:05:32,000 а вы, например, ждаете что-то другое, да? 119 00:05:32,800 --> 00:05:33,800 Довольно строго, естественно. 120 00:05:33,960 --> 00:05:34,960 То есть как бы... 121 00:05:34,960 --> 00:05:35,960 То есть можно поставить просто any, 122 00:05:36,320 --> 00:05:38,320 вот, тогда будет все выпускаться. 123 00:05:38,680 --> 00:05:39,680 Это там, если, 124 00:05:39,680 --> 00:05:41,000 допустим, еще не знаем, что будет приходить, просто оставляешь там, как 125 00:05:41,000 --> 00:05:42,000 это, 126 00:05:42,400 --> 00:05:43,400 что респонс может быть any. 127 00:05:44,000 --> 00:05:47,556 А так, там, любое отклонение, оно как бы уже будет ошибку выдавать. 128 00:05:47,556 --> 00:05:48,796 Естественно, эта ошибка обрабатывается. 129 00:05:49,040 --> 00:05:51,040 Угу, но тут редакцию луки, 130 00:05:51,040 --> 00:05:53,040 получается, не использовали, 131 00:05:53,040 --> 00:05:54,040 да, на втором, на ВМС, 132 00:05:54,040 --> 00:05:55,040 только на авто. 133 00:05:55,560 --> 00:05:56,560 А на ВМС использовали RTK Query, 134 00:05:58,960 --> 00:05:59,960 Zustand тоже. 135 00:06:00,480 --> 00:06:03,160 А зачем тогда заставкать, если есть у тебя тулфит? 136 00:06:03,240 --> 00:06:08,160 ЗУС очень удобно было разделять на маленький модуль. 137 00:06:08,640 --> 00:06:09,640 Если есть какая-то пейдж, 138 00:06:10,280 --> 00:06:11,280 отдельная страница, 139 00:06:11,440 --> 00:06:13,200 можно для нее сделать страницу отдельную. 140 00:06:13,520 --> 00:06:15,480 И оно в принципе очень легковесно получается. 141 00:06:16,160 --> 00:06:20,600 RTK-Query это именно если подгружать в той же самой логике, 142 00:06:20,800 --> 00:06:22,680 где появляется событие, какая-то таблица, 143 00:06:23,040 --> 00:06:28,100 там удобно инвалидировать какие-то запросы. То есть если какое-то 144 00:06:28,100 --> 00:06:29,560 изменение внесли, автоматически отправляются, 145 00:06:29,680 --> 00:06:34,600 инвалидируется кэш и запрашиваются автоматически новые данные. 146 00:06:34,680 --> 00:06:36,640 То есть они всегда как бы синхронизированные получаются. 147 00:06:37,200 --> 00:06:40,040 Тут еще написано Next на обоих проектах. 148 00:06:40,240 --> 00:06:43,240 Да, Next... Это основа? 149 00:06:43,240 --> 00:06:44,240 Не, на самом деле у нас, да, Next, 150 00:06:44,240 --> 00:06:47,600 он использовался больше для таких сторонних проектов, 151 00:06:47,640 --> 00:06:49,640 вот. Просто потому что проекты внутренние, 152 00:06:50,720 --> 00:06:51,720 с Next я знаком, 153 00:06:51,720 --> 00:06:53,620 но по большей части у нас вот такие внутренние проекты на инсте не 154 00:06:53,620 --> 00:06:54,620 делаются. 155 00:06:55,640 --> 00:06:57,960 Просто потому что нет нужды в серверном рендере. 156 00:06:58,080 --> 00:07:01,717 Не, я почему-то спрашиваю, потому что он указан в статье. 157 00:07:01,717 --> 00:07:02,717 И поэтому у меня вопрос, 158 00:07:03,160 --> 00:07:05,159 То есть, как это вы, 159 00:07:05,159 --> 00:07:07,158 и на Next, и на X? 160 00:07:07,158 --> 00:07:09,152 Да, в MS я там ошибочно написал Next, 161 00:07:09,760 --> 00:07:10,760 там нет Nexta, 162 00:07:10,920 --> 00:07:11,920 в целом с Nextом я знаком, 163 00:07:12,200 --> 00:07:13,200 вот конкретно в MS его нет. 164 00:07:13,440 --> 00:07:15,920 Ну, просто во что он тоже стоит, в этих технологиях. 165 00:07:16,240 --> 00:07:17,240 Ну окей, а с каким, 166 00:07:17,360 --> 00:07:20,600 с какими версиями работал? Уже с отроутером или нет? 167 00:07:21,040 --> 00:07:22,040 Я работал еще с пятым роутером, 168 00:07:24,240 --> 00:07:26,960 а на Next Day работал с уже встроенным. 169 00:07:27,240 --> 00:07:28,240 Какая версия Next Day? 170 00:07:32,320 --> 00:07:34,840 А с предыдущими до 12 работал, когда-нибудь? 171 00:07:35,040 --> 00:07:36,040 Нет, до 12 никогда не работал. 172 00:07:36,160 --> 00:07:37,720 А вообще примерно понимаешь, как вам нужно? 173 00:07:42,120 --> 00:07:45,397 Вот, но он конкретно там глубленно с этими не работает. 174 00:07:45,960 --> 00:07:46,960 Ну, ладно, окей. Хорошо, 175 00:07:47,240 --> 00:07:48,240 давайте тоже порешаем задачки. 176 00:07:49,200 --> 00:07:50,200 В принципе, 177 00:07:50,200 --> 00:07:53,660 я подготовил не самые легкие задачи, потому что ты на скрининге все отлично 178 00:07:53,660 --> 00:07:54,660 решил, 179 00:07:57,440 --> 00:08:00,439 и, в принципе, я так подумал, 180 00:08:00,439 --> 00:08:04,319 что мы попробуем порешать чуть посложнее, чем то, 181 00:08:04,319 --> 00:08:05,319 что я даю обычно. 182 00:08:05,319 --> 00:08:07,318 Как вообще? Справишься, как считаешь? 183 00:08:07,318 --> 00:08:09,318 Ну, давай попробуем. 184 00:08:09,400 --> 00:08:10,400 Они прям несложные. 185 00:08:10,760 --> 00:08:12,759 То есть, это то, что я говорю, 186 00:08:12,759 --> 00:08:13,759 это сложнее. 187 00:08:22,160 --> 00:08:23,160 Ну у меня 60 задач решено. 188 00:08:24,240 --> 00:08:25,240 20 видимо. 189 00:08:26,080 --> 00:08:30,160 Ну мне очень понравилось, там есть подготовочные подборки под JavaScript. 190 00:08:30,520 --> 00:08:32,520 Там где методы. Да, 191 00:08:32,520 --> 00:08:34,519 да. Там есть разные. 192 00:08:37,760 --> 00:08:41,760 Да, да, да. Вот я как раз их подряд прям решал, 193 00:08:41,760 --> 00:08:44,860 потому что очень прикольно там, именно на конструкции языка, не на 194 00:08:44,860 --> 00:08:48,960 алгоритмах, не на какие-то особенности. Окей, 195 00:08:48,960 --> 00:08:50,959 окей, круто. Ну тогда, 196 00:08:50,959 --> 00:08:51,959 я думаю, ты справишься. 197 00:08:51,959 --> 00:08:53,958 Давай, ссылочку дам тебе. 198 00:09:07,040 --> 00:09:08,040 и надо вернуть из функции корень, 199 00:09:10,880 --> 00:09:11,880 то есть если я пишу, например, 200 00:09:12,280 --> 00:09:15,280 вот 1, 2, 3, то есть нода 1 это рутовая нода, 201 00:09:17,600 --> 00:09:18,600 и у нее есть точка left, 202 00:09:19,040 --> 00:09:20,040 это нода, 203 00:09:20,160 --> 00:09:21,160 которая слева, 204 00:09:21,400 --> 00:09:22,400 и точка right, 205 00:09:22,920 --> 00:09:26,840 это нода, которая справа, надо просто вернуть тот же root, 206 00:09:26,840 --> 00:09:28,840 тут же единицу, просто слева. 207 00:09:32,160 --> 00:09:33,160 Двойки 2 и 3 применяются местами. 208 00:09:35,040 --> 00:09:36,040 Ну, оно как бы всё зеркально идёт. 209 00:09:37,080 --> 00:09:38,080 Я понял, я понял, 210 00:09:38,360 --> 00:09:39,360 да. 211 00:09:40,320 --> 00:09:42,319 Выглядит сложно, пишется достаточно просто. 212 00:09:44,200 --> 00:09:45,200 На редкоде я бы тоже решил, 213 00:09:45,680 --> 00:09:49,040 правда не так сейчас свежо всё это помню. 214 00:09:50,280 --> 00:09:51,280 Первые задачи 10, 215 00:09:51,320 --> 00:09:52,320 по-моему, на дереве, они, 216 00:09:52,680 --> 00:09:53,680 короче, тоже изи там. 217 00:09:55,800 --> 00:09:56,800 Это изи задачи, да, на дерево. 218 00:09:57,880 --> 00:09:58,880 Я люблю давать задачи на дерево, 219 00:09:59,440 --> 00:10:02,920 потому что фронтам они достаточно близки По духу, как бы, 220 00:10:04,160 --> 00:10:05,160 мы же работаем постоянно. 221 00:10:05,920 --> 00:10:06,920 Не знаю, 222 00:10:06,920 --> 00:10:08,620 не знаю. На фронтам мне один раз давали тоже дерево, только на 223 00:10:08,620 --> 00:10:09,620 собеседование. 224 00:10:10,360 --> 00:10:11,360 Не, ну мы же работаем, например, 225 00:10:11,640 --> 00:10:12,640 с домом, да? 226 00:10:12,680 --> 00:10:13,680 Работаем с перебором нот, 227 00:10:14,440 --> 00:10:15,440 то есть, что-то не ищем. 228 00:10:15,600 --> 00:10:17,599 Это, ну, это ж, вот... 229 00:10:17,599 --> 00:10:20,799 Оно и есть. Хорошо, так будем решать. Давай этот, бутылку. 230 00:10:20,799 --> 00:10:22,798 Пройдемся. Ну я думаю, 231 00:10:22,798 --> 00:10:23,798 что будем смотреть. 232 00:10:23,798 --> 00:10:27,397 Ну просто будем запоминать левое и правое. И рекурсивно идти. 233 00:10:27,760 --> 00:10:28,760 То есть мы будем, 234 00:10:28,760 --> 00:10:31,760 ну... Да, помню, запоминать, 235 00:10:31,760 --> 00:10:34,080 менять их местами и рекурсивно вызывать то же самое для последующих 236 00:10:34,080 --> 00:10:35,080 узлов. 237 00:10:35,680 --> 00:10:36,680 Ну окей, давай. 238 00:10:39,280 --> 00:10:40,280 То есть мы запоминаем. 239 00:10:40,520 --> 00:10:41,520 Мы начинаем левое и правое, 240 00:10:42,120 --> 00:10:43,120 и потом просто меняем их. 241 00:10:43,400 --> 00:10:45,396 Да, по идее у нас должно быть... 242 00:11:08,760 --> 00:11:10,760 Так, давай подумаем, 243 00:11:10,760 --> 00:11:11,760 значит мы сохранили... 244 00:11:12,120 --> 00:11:15,120 Супер. Спасибо. Да, 245 00:11:15,120 --> 00:11:16,120 ну точка лефт равно... 246 00:11:18,360 --> 00:11:19,360 то есть, что пришли, 247 00:11:20,000 --> 00:11:21,000 а мы поменяли водицы вот так. 248 00:11:24,280 --> 00:11:26,080 границ, то есть у нас будет пустое море. 249 00:11:26,920 --> 00:11:27,920 У нас работает параллельная структура. 250 00:11:29,560 --> 00:11:30,560 Ну да, 251 00:11:30,920 --> 00:11:31,920 вроде бы похоже на работающий код. 252 00:11:33,720 --> 00:11:34,720 Мы вернем вам 253 00:11:35,400 --> 00:11:36,400 и потом жернем на утро 254 00:11:42,160 --> 00:11:43,160 Я просто не помню, 255 00:11:43,560 --> 00:11:44,560 я просто не помню, как я это решал. 256 00:11:46,520 --> 00:11:49,519 По-моему, так же. Только я, по-моему, 257 00:11:49,519 --> 00:11:51,519 знаешь, это делал, 258 00:11:51,519 --> 00:11:52,519 я, по-моему, возвращал и сразу свечил. 259 00:11:53,280 --> 00:11:54,280 То есть здесь ты, получается, 260 00:11:56,080 --> 00:11:57,080 просто меняешь их? 261 00:11:58,760 --> 00:11:59,760 И потом инвертируешь. 262 00:12:03,880 --> 00:12:06,880 Но, по-моему, так тоже будет работать. 263 00:12:06,880 --> 00:12:08,880 Я думаю, так точно будет поработать. 264 00:12:10,320 --> 00:12:16,000 Потому что мы делаем просто-просто мутацию in place и всё как бы. 265 00:12:16,880 --> 00:12:17,880 Ну да, 266 00:12:17,880 --> 00:12:19,520 то есть получается мы возвращаем ноду из инверта, но здесь она просто не 267 00:12:19,520 --> 00:12:20,520 нужна. 268 00:12:20,760 --> 00:12:21,760 Мы всегда вернём паутку. 269 00:12:22,400 --> 00:12:28,400 Ок, круто. Так, давай вторую задачу, она тоже как бы не сложная, 270 00:12:28,400 --> 00:12:29,400 но адекватно не сложная. 271 00:12:29,400 --> 00:12:31,399 Ну, там есть хитрость. 272 00:12:31,399 --> 00:12:32,399 Ты знаком с Сэмми Портсенбеком, да? 273 00:12:32,880 --> 00:12:35,880 Да, конечно. Ну, отлично. 274 00:12:35,880 --> 00:12:37,879 Ну, два человека, максимум... 275 00:12:37,879 --> 00:12:38,879 первых троих вернуть массив Ансвор. 276 00:12:42,880 --> 00:12:43,880 Состоящие из двух массивов. 277 00:12:44,520 --> 00:12:45,520 Первый массив, 278 00:12:46,320 --> 00:12:47,320 это массив чисел из первого массива, 279 00:12:49,640 --> 00:12:50,640 которых нет во втором. 280 00:12:51,360 --> 00:12:55,480 И второй массив это массив чисел из второго, которых нет в первом. 281 00:12:55,680 --> 00:13:00,742 Пример, вот у нас приходит нам с 1 это 1, 2, 3 массив. И приходит нам с 2 это 282 00:13:00,742 --> 00:13:03,742 2, 4, 6. Мы должны вернуть массив, 283 00:13:03,742 --> 00:13:04,742 в котором 2 массива. 284 00:13:04,880 --> 00:13:05,880 И первым из них это 1-3, 285 00:13:06,600 --> 00:13:09,800 потому что единички и тройки во втором нету, но есть двое. 286 00:13:15,200 --> 00:13:17,600 А двоечка есть в первом, поэтому двоечку не вернем. 287 00:13:19,280 --> 00:13:20,280 Во втором примере у нас есть дубли, 288 00:13:21,880 --> 00:13:22,880 но в принципе на них смотреть не надо, 289 00:13:23,880 --> 00:13:24,880 мы один раз вернем, 290 00:13:24,880 --> 00:13:26,880 второй выпишем. Угу. 291 00:13:26,880 --> 00:13:27,880 А здесь вот 1.1.2 292 00:13:29,160 --> 00:13:31,800 Но так как и 1 и 2 есть в первом, мы ничего не вернем, 293 00:13:31,920 --> 00:13:32,920 значит вернем пустой массив. 294 00:13:33,000 --> 00:13:35,000 Так, нуу 295 00:13:59,680 --> 00:14:01,680 Пока! Че, мы пройдем и ГАЗ, 296 00:14:02,200 --> 00:14:03,200 и пройдем второй раз по идее. 297 00:14:04,720 --> 00:14:09,160 Как будто бы OOT будет и ничего у нас даже за это время не выйдет. 298 00:14:09,320 --> 00:14:12,760 Да, потому что мы просто пройдемся по одному исключим, 299 00:14:12,920 --> 00:14:13,920 пройдемся по второму и исключим. 300 00:14:14,920 --> 00:14:15,920 Вот, соответственно, 301 00:14:15,920 --> 00:14:16,920 сложность она будет линейная. 302 00:14:17,400 --> 00:14:20,440 А что конкретно ты будешь исключать? Вот выброшились, например, 303 00:14:20,560 --> 00:14:22,559 1, 2, 3. Будем исключать 2. 304 00:14:23,880 --> 00:14:27,040 Вот, то есть мы получим множество элементов уникальных, 305 00:14:27,560 --> 00:14:28,560 ну естественно множество, 306 00:14:28,560 --> 00:14:29,560 но получаем уникальное. 307 00:14:30,680 --> 00:14:31,680 и он будет исключателем. 308 00:14:33,000 --> 00:14:35,040 Получаются те элементы, которые есть во множестве. 309 00:14:35,320 --> 00:14:39,958 А, ну мы идем. Получается по этому и идем по множеству, 310 00:14:39,958 --> 00:14:40,958 для каждой линейки. 311 00:14:41,320 --> 00:14:47,320 То есть это как будто будет длина вот этого массива на длину множества. 312 00:14:48,120 --> 00:14:49,120 Вот так вот будет сложность. 313 00:14:50,400 --> 00:14:52,400 Ну, звучит правильно, 314 00:14:52,400 --> 00:14:55,560 но если я тебя правильно понял, там есть еще кое-какая оптимизация, 315 00:14:55,560 --> 00:14:58,440 но основа вроде верная. Давай это попробуем написать. 316 00:14:58,880 --> 00:14:59,880 И потом посмотрим, 317 00:14:59,920 --> 00:15:00,920 как можно улучшить. 318 00:15:01,320 --> 00:15:04,633 Я напишу, когда самая-таки первая тачка пришла, а потом и следующая. 319 00:15:04,633 --> 00:15:05,633 А я у тебя написал уже, как это. 320 00:15:05,640 --> 00:15:06,640 Дифф у нас будет, 321 00:15:07,240 --> 00:15:09,236 то есть у нас, ну, у нас еще два обои. 322 00:15:09,920 --> 00:15:10,920 Божество вверх! 323 00:15:11,080 --> 00:15:12,080 А что за Миша за паромножеством? 324 00:15:13,080 --> 00:15:14,080 Кошмар был? 325 00:15:23,960 --> 00:15:25,960 Да, то есть если мы уникальны. 326 00:15:27,200 --> 00:15:30,440 Мы все равно не будем вообще дублировать какие-то элементы. 327 00:15:30,920 --> 00:15:31,920 То есть, 328 00:15:31,920 --> 00:15:35,000 по идее, мы вообще будем на этом этапе забыть про массивы и вообще перейти 329 00:15:35,000 --> 00:15:36,000 просто ко множествам. 330 00:15:39,400 --> 00:15:40,400 Вот, допустим, вот что у нас будет. 331 00:15:47,840 --> 00:15:49,360 Я, честно говоря, не помню про Моргенштерна. 332 00:15:50,320 --> 00:15:51,320 Вот подобную конструкцию, 333 00:15:52,160 --> 00:15:53,160 ты только уверенно написал, значит, 334 00:15:53,720 --> 00:15:56,720 наверное, можно. Да, 335 00:15:56,720 --> 00:15:59,713 да, не можно. Просто у сета же мы не можем? Не, я понимаю, 336 00:15:59,713 --> 00:16:01,713 но я к тому, что, типа, 337 00:16:01,713 --> 00:16:04,709 ну да, это же, сет, это же, в любом случае. 338 00:16:08,520 --> 00:16:09,520 Чё, будет по сложности? 339 00:16:11,880 --> 00:16:13,880 Да, но это не будет работать. 340 00:16:14,080 --> 00:16:15,080 Здесь немножечко ошибочно кое-где. 341 00:16:16,560 --> 00:16:17,560 То есть вот эта история, 342 00:16:17,720 --> 00:16:20,720 конечно же, есть. Угу, угу. 343 00:16:21,440 --> 00:16:22,440 Да. 344 00:16:22,640 --> 00:16:23,640 Что по сложности? 345 00:16:23,960 --> 00:16:24,960 По сложности получается, 346 00:16:26,160 --> 00:16:29,760 ну как будто бы длина вот этого на ОАТМ получается. 347 00:16:30,280 --> 00:16:31,280 Плюс длина второго. 348 00:16:34,320 --> 00:16:38,600 Получается как будто длина вот этого плюс длина вот этого. 349 00:16:38,800 --> 00:16:42,040 То есть если константы отбросить, будет ООН все равно. 350 00:16:45,400 --> 00:16:46,400 то что там 2 атома, 4 атома. 351 00:16:47,680 --> 00:16:48,680 Тут, на самом деле, еще можно было... 352 00:17:04,680 --> 00:17:05,680 Нам дан бинарный массив, 353 00:17:07,800 --> 00:17:08,800 настоящий только. 354 00:17:08,800 --> 00:17:09,800 из единичек и номерек. 355 00:17:10,360 --> 00:17:11,360 на входе, да, 356 00:17:11,560 --> 00:17:15,880 нам надо обязательно в нем удалить какой-нибудь элемент. 357 00:17:17,600 --> 00:17:18,600 ничего не убирать. 358 00:17:18,600 --> 00:17:20,600 Надо выбрать. какой-нибудь. 359 00:17:21,320 --> 00:17:22,320 Не удовлетворяйте! 360 00:17:22,360 --> 00:17:25,600 и нужно вернуть размер максимально длинного подмосива. 361 00:17:26,360 --> 00:17:27,360 состоящего только из недельников. 362 00:17:29,560 --> 00:17:32,720 Под массив, это часть исходного массива, ну просто непривычный массив. 363 00:17:34,720 --> 00:17:35,720 его поднимите там кусками. 364 00:17:37,080 --> 00:17:39,400 Вот давай на примере разберем. Вот у нас есть наш пример. 365 00:17:49,160 --> 00:17:50,160 Можно играть единичку. 366 00:17:50,840 --> 00:17:51,840 Это не важно. 367 00:17:52,120 --> 00:17:53,120 Любой элемент надо идёт и удалить. 368 00:17:53,840 --> 00:17:54,840 Но тут, например, 369 00:17:54,840 --> 00:17:57,150 логично, что надо удалить этот элемент. и мы увидим три единицы 370 00:17:57,150 --> 00:17:58,150 подряд. 371 00:17:58,960 --> 00:18:00,960 Значит так. будет 3. 372 00:18:00,960 --> 00:18:01,960 Вот если такой, например, 373 00:18:02,160 --> 00:18:03,160 массив. 374 00:18:03,240 --> 00:18:04,240 то мы должны удалить вот этот нолик, 375 00:18:05,400 --> 00:18:06,400 и тогда мы получим 5. 376 00:18:07,280 --> 00:18:08,280 Легендарный. 377 00:18:09,440 --> 00:18:10,440 А если у нас все единицы в массиве? 378 00:18:16,480 --> 00:18:17,480 Но это абсолютно не будет. 379 00:18:20,760 --> 00:18:21,760 Было три единички подряд, 380 00:18:22,760 --> 00:18:24,759 стало две. В принципе, все. 381 00:18:24,759 --> 00:18:26,759 Я думаю, что с объяснением понятно. 382 00:18:27,680 --> 00:18:29,679 Какие-то мысли, как это решать? 383 00:18:29,680 --> 00:18:32,080 Ну, так, вот этот кейс у нас самый простой. 384 00:18:32,760 --> 00:18:33,760 Как бы понятно вроде. 385 00:18:34,480 --> 00:18:36,480 Простой, да. То есть надо смотреть, 386 00:18:36,480 --> 00:18:39,476 вообще, если... Вот сейчас это будет edge-кейс наш. 387 00:18:39,880 --> 00:18:42,880 А тут, ну, скорее всего, 388 00:18:42,880 --> 00:18:43,880 надо будет смотреть, 389 00:18:43,880 --> 00:18:47,640 вот такие последовательности искать, то есть, каким-то, 390 00:18:47,640 --> 00:18:48,640 то ли с указателями двумя, 391 00:18:48,640 --> 00:18:49,640 то ли со скользящим окном, 392 00:18:51,360 --> 00:18:52,360 и смотреть, получается, 393 00:18:52,800 --> 00:18:56,680 области, где у нас внутри будет именно один ноль. 394 00:18:58,640 --> 00:18:59,640 Внимание! 395 00:19:02,120 --> 00:19:05,120 Сейчас. Ну, мне кажется, 396 00:19:05,120 --> 00:19:07,114 да, что как будто бы вот мы будем... 397 00:19:07,114 --> 00:19:08,114 Либо указатели нет. 398 00:19:08,800 --> 00:19:11,520 Допустим смотрим здесь указатель ставим смотрим есть там дальше один 399 00:19:11,520 --> 00:19:12,520 нолик его пропускаем 400 00:19:14,440 --> 00:19:17,440 И дальше, когда встречаем следующую нолик. Ставим еще один указатель. 401 00:19:20,240 --> 00:19:21,240 Вот это, вот эту длину, 402 00:19:21,760 --> 00:19:22,760 сколько у нас получилось, 403 00:19:22,760 --> 00:19:24,760 минус один. Дальше, 404 00:19:24,760 --> 00:19:25,760 допустим, запоминаем, как Макс. 405 00:19:25,800 --> 00:19:28,876 Идем дальше. Вот этот указатель двигаем после нолика. 406 00:19:28,880 --> 00:19:31,879 Дальше идем. Ну, там, если он продолжался, то идем дальше. 407 00:19:32,600 --> 00:19:36,239 Как будто бы... Вот так можно с двумя указателями шагать. 408 00:19:36,239 --> 00:19:38,238 Ну, давай попробуем написать. 409 00:19:38,238 --> 00:19:39,238 Звучит вроде как хорошо. 410 00:19:39,238 --> 00:19:40,238 РАНДОМНЫЙ 411 00:20:03,680 --> 00:20:04,680 У нас два варианта. 412 00:20:05,200 --> 00:20:06,200 Либо отдельно пройтись, 413 00:20:07,040 --> 00:20:08,040 посмотреть есть ли нули какие-то, 414 00:20:08,920 --> 00:20:09,920 либо в один цикл загнуть, 415 00:20:10,480 --> 00:20:11,480 чтобы два раза не идти, 416 00:20:13,600 --> 00:20:14,600 получается, 417 00:20:14,680 --> 00:20:15,680 ну не смотреть один раз, 418 00:20:15,760 --> 00:20:16,760 если там нули, 419 00:20:16,960 --> 00:20:17,960 вот этот базовый случай обрабатывать, 420 00:20:20,360 --> 00:20:21,360 вот, 421 00:20:21,600 --> 00:20:22,600 получается. 422 00:20:22,800 --> 00:20:23,800 Хорошо, 423 00:20:24,240 --> 00:20:28,480 у тебя будут некоторые вложенные циклы, 424 00:20:29,280 --> 00:20:31,280 ну не циклы, а проверки дополнительные внутри. 425 00:20:34,760 --> 00:20:35,760 Да, 426 00:20:35,960 --> 00:20:41,960 да. Ну, я хочу сейчас с обложенным циклом, но за один цикл пройтись. 427 00:20:57,200 --> 00:20:59,200 И дальше, если мы... 428 00:20:59,200 --> 00:21:00,200 Доходим до следующего нуля, 429 00:21:01,360 --> 00:21:02,360 мы должны начать двигать левый. 430 00:21:06,880 --> 00:21:08,720 То есть если мы не встретим ни одного нуля, 431 00:21:08,880 --> 00:21:09,880 мы упадем. 432 00:21:10,400 --> 00:21:12,400 до конца, если мы встретим какой-то ноль. 433 00:21:15,360 --> 00:21:16,360 до второй, второй, 434 00:21:17,240 --> 00:21:18,240 наверное, точнее, 435 00:21:18,240 --> 00:21:19,240 то уже будем двигать 436 00:21:19,400 --> 00:21:20,400 левую позади. 437 00:21:21,600 --> 00:21:22,600 и смотреть, 438 00:21:22,640 --> 00:21:27,800 какая у нас получается максимальная длина этого подносила. 439 00:21:39,080 --> 00:21:40,080 Мы будем двигать левый указатель, 440 00:21:41,600 --> 00:21:42,600 пока не встретим 441 00:21:43,400 --> 00:21:44,400 его. 442 00:21:52,120 --> 00:21:55,120 Ну, наверное, тут есть некоторые неточности. 443 00:21:55,440 --> 00:21:57,720 Но ты вроде не закончил, поэтому, может, 444 00:21:57,840 --> 00:21:58,840 я просто не понимаю твоей идеи. 445 00:21:59,720 --> 00:22:02,640 Давайте закапичим это до конца, я скажу это работает или нет. 446 00:22:03,080 --> 00:22:05,079 Ну, по идее, вот мы смотрим, 447 00:22:05,079 --> 00:22:10,555 да, то есть, и если у нас zero count будет нулем после этого цикла, 448 00:22:10,555 --> 00:22:13,148 либо единицы, то есть у нас zero count должен быть, получается, 449 00:22:13,148 --> 00:22:15,148 единица всегда. И вот если он единица, 450 00:22:15,148 --> 00:22:16,148 то мы можем, в принципе, 451 00:22:16,148 --> 00:22:17,148 эту просто единицу, 452 00:22:17,148 --> 00:22:19,108 ну, просто даже по указателю можем посчитать. 453 00:22:44,520 --> 00:22:47,040 Ну давай пройдемся по первому варианту, к примеру. 454 00:22:47,080 --> 00:22:49,079 Пока! По твоему коду. 455 00:22:49,079 --> 00:22:52,079 Так, ну давай, да. 456 00:22:52,079 --> 00:22:57,279 Получается у нас на нос это будет такой массив. Мы, получается, 457 00:22:57,279 --> 00:22:58,279 начинаем двигаться правым указателем. 458 00:23:00,360 --> 00:23:01,360 Пока не встретим, 459 00:23:03,040 --> 00:23:09,040 ну вот получается эту проверку не пропускаем, то есть идем сюда, 460 00:23:09,880 --> 00:23:10,880 зеро каунт у нас ноль, 461 00:23:11,320 --> 00:23:12,320 поэтому мы его не, 462 00:23:12,560 --> 00:23:13,560 тоже не наслаждаемся. 463 00:23:13,800 --> 00:23:14,800 цикл не срабатывает, 464 00:23:15,160 --> 00:23:18,160 а максимально у нас будет правая минус левая, 465 00:23:18,280 --> 00:23:19,280 то есть левая у нас будет 0, 466 00:23:20,240 --> 00:23:21,240 правая у нас будет 0. 467 00:23:25,920 --> 00:23:27,920 Дальше идём, на следующую итерацию получается. 468 00:23:28,400 --> 00:23:29,400 А мы запишем макс, 469 00:23:30,040 --> 00:23:31,040 когда получается ноль. 470 00:23:31,400 --> 00:23:33,394 Да, ноль. Ну вот и вот здесь вернём. 471 00:23:33,960 --> 00:23:34,960 Это и есть Титан. 472 00:23:36,680 --> 00:23:37,680 Мы ведь Дина-то уже один, 473 00:23:38,320 --> 00:23:40,520 мы ведь ещё один элемент взяли, а не много. 474 00:23:40,760 --> 00:23:41,760 Ну так получается. 475 00:23:43,480 --> 00:23:44,480 Можно то есть прошли первый элемент. 476 00:23:45,680 --> 00:23:46,680 И в конце по итогу мы вписали в МАКС. 477 00:23:48,840 --> 00:23:51,880 0, хотя по факту мы уже один элемент прошли. 478 00:23:55,160 --> 00:23:57,160 Да, я вернул, но это, 479 00:23:57,160 --> 00:23:58,160 допустим, если бы он здесь закончился, 480 00:23:58,160 --> 00:23:59,800 да, если бы у нас был всего один элемент. 481 00:24:00,160 --> 00:24:02,160 Давай пока не будем думать про платить очки, 482 00:24:02,320 --> 00:24:03,320 а то что там удалять в конце надо, 483 00:24:04,840 --> 00:24:05,840 найт нашли, 484 00:24:05,880 --> 00:24:06,880 если что. 485 00:24:11,400 --> 00:24:12,400 Всем удачи! 486 00:24:13,040 --> 00:24:15,040 Так, ну да, здесь, получается, 487 00:24:15,040 --> 00:24:19,640 на первой итерации вот этой истории у нас будет мапса равен 0. 488 00:24:24,480 --> 00:24:26,880 Дальше мы перейдем на следующую итерацию. 489 00:24:27,480 --> 00:24:28,480 Сейчас я попробую так подметиться. 490 00:24:31,240 --> 00:24:34,120 На следующий у нас будет всё то же самое, 491 00:24:34,440 --> 00:24:35,440 только Манса будет равен 1. 492 00:24:36,120 --> 00:24:38,116 Получилось. А вот ответ на твой вопрос, 493 00:24:38,480 --> 00:24:44,480 а нам вообще надо записывать вот эту 93 строку в максимум, если мы, 494 00:24:44,680 --> 00:24:46,680 например, прошли еменицу? 495 00:24:46,680 --> 00:24:47,680 Ты хочешь сначала почитать, 496 00:24:48,880 --> 00:24:49,880 а потом посмотреть максимум? 497 00:24:50,800 --> 00:24:55,760 Не, не, ну насколько имеет смысл вот этого делать каждый раз? 498 00:25:02,640 --> 00:25:05,240 Вот если у тебя 100 элементов, то оно выполнится 100 раз, 499 00:25:05,520 --> 00:25:09,400 потому что ты нигде ни континью не пишешь, ни ретурн, ничего такого. 500 00:25:09,520 --> 00:25:11,520 Ты имеешь ввиду, чтобы на единице, допустим, 501 00:25:11,680 --> 00:25:14,160 не вызывать эту операцию, только, там, когда мы какую-то нору подвинем или 502 00:25:14,160 --> 00:25:15,160 какую-то такую историю сделаем? 503 00:25:16,760 --> 00:25:17,760 Ну, допустим, допустим так. 504 00:25:18,200 --> 00:25:19,200 Если у нас нора не встретится, 505 00:25:19,960 --> 00:25:20,960 нам нужно будет вернуть ему... 506 00:25:22,480 --> 00:25:24,480 Вот, а нуля не встретится, 507 00:25:24,480 --> 00:25:27,679 поэтому я бы на нуле не хотел бы завязываться. Это вот если... 508 00:25:27,679 --> 00:25:28,679 А почему нуля не встретится? 509 00:25:28,880 --> 00:25:29,880 Ну, если у нас всё будет в единице, 510 00:25:30,680 --> 00:25:31,680 то по единице мы дойдём, и у нас, 511 00:25:33,000 --> 00:25:35,260 блин, вот этот цикл ни разу не сработает, ничего не сработает, 512 00:25:35,260 --> 00:25:36,260 сработает только вот эта история. 513 00:25:39,240 --> 00:25:40,240 И мы можем этот балл, после цикла, 514 00:25:42,920 --> 00:25:43,920 ну после цикла мы не можем, 515 00:25:44,640 --> 00:25:47,600 потому что у нас переменная райт сейчас в цикле объявлена. 516 00:25:47,800 --> 00:25:48,800 Ну, может, конечно, перейдет как-то. 517 00:25:49,480 --> 00:25:51,480 Ну ладно, окей, хорошо. 518 00:25:51,480 --> 00:25:52,480 Если ты это решила ставить, 519 00:25:52,480 --> 00:25:56,040 то в конце первого цикла у нас макс будет равен 0. 520 00:25:56,160 --> 00:25:57,160 Но это же ведь неправильно. 521 00:25:57,720 --> 00:25:59,800 То есть мы уже обработали первую единичку, 522 00:25:59,960 --> 00:26:00,960 вот эту мы обработали уже, 523 00:26:01,400 --> 00:26:02,400 а макс все равно ноль. 524 00:26:03,760 --> 00:26:04,760 Каждый раз удаляем нолик. 525 00:26:05,240 --> 00:26:07,236 Да, то есть мы в любом случае, 526 00:26:07,560 --> 00:26:09,760 мы же должны в любом случае удалить один элемент, 527 00:26:10,000 --> 00:26:11,000 получается. 528 00:26:11,200 --> 00:26:12,200 То есть у нас получается, 529 00:26:13,440 --> 00:26:17,920 что с учетом удаленного элемента будет правильный ответ в этом случае. 530 00:26:18,200 --> 00:26:19,400 То есть у нас и должен быть правильный. 531 00:26:19,640 --> 00:26:21,880 Если два элемента, то у нас должен быть. 532 00:26:25,960 --> 00:26:26,960 К нулю мы дошли, например. 533 00:26:27,840 --> 00:26:30,400 Ну или, например, мы уже до этого момента удалили. 534 00:26:30,720 --> 00:26:31,720 И нам уже не надо удалять. 535 00:26:32,800 --> 00:26:33,800 то тогда будет неправильно. 536 00:26:34,600 --> 00:26:35,600 Просто в условии получается, 537 00:26:35,880 --> 00:26:36,880 что мы обязательно удаляем элементы. 538 00:26:38,880 --> 00:26:43,435 Соответственно, если у нас будет на массиве из одного элемента, 539 00:26:43,435 --> 00:26:44,435 то вывод должен быть миллион. 540 00:26:44,720 --> 00:26:45,720 Если у нас из двух элементов, 541 00:26:46,480 --> 00:26:47,480 то даже если они оба единицы, 542 00:26:48,200 --> 00:26:49,200 то у нас будет вывод единица, по идее. 543 00:26:50,960 --> 00:26:54,556 Ну ладно, хорошо, давай, давай вот первый пример рассматривать, 544 00:26:54,556 --> 00:26:56,556 давай вот эти, естественно, потом, 545 00:26:56,556 --> 00:26:57,556 давай вот первый. 546 00:26:57,556 --> 00:26:58,556 То есть мы, получается, 547 00:26:58,556 --> 00:26:59,556 прошли первый раунд. 548 00:26:59,556 --> 00:27:00,556 и здесь у нас лежит нолик. 549 00:27:00,556 --> 00:27:03,396 Давай вот мы возьмем следующий форцикл, 550 00:27:03,440 --> 00:27:04,440 вторая единичка, 551 00:27:04,720 --> 00:27:05,720 как это будет обрабатывать. 552 00:27:06,080 --> 00:27:08,600 Мы вот первую тракту уже прошли вот с этой единичкой. 553 00:27:08,680 --> 00:27:11,680 Ну да. Да, теперь вторую. 554 00:27:11,680 --> 00:27:13,680 То есть, второй пилот. 555 00:27:13,680 --> 00:27:14,680 Только здесь у нас уже будет миночка. 556 00:27:14,800 --> 00:27:15,800 Вот, все то же самое. 557 00:27:15,800 --> 00:27:17,160 Мы как бы ноль не встретили, поэтому прошлось. 558 00:27:17,280 --> 00:27:18,280 Ноль не встретим, получается. 559 00:27:19,160 --> 00:27:20,160 И зеро каут тоже будет. 560 00:27:27,080 --> 00:27:29,280 3.0 у нас уже получается вот эта история отрабатывает, увеличивается 561 00:27:29,280 --> 00:27:30,280 зеро-аккаунт. 562 00:27:35,120 --> 00:27:36,120 Зеро-аккаунт у нас будет единицей, 563 00:27:37,840 --> 00:27:38,840 поэтому эта история не срабатывает. 564 00:27:40,080 --> 00:27:41,080 И у нас здесь получается двойка. 565 00:27:44,040 --> 00:27:46,440 Пока что правильно. Двойка. Потому что нолик мы можем убрать. 566 00:27:47,640 --> 00:27:48,640 Дальше если пойдем. 567 00:27:48,880 --> 00:27:49,880 Получается следующая единичка. 568 00:27:50,480 --> 00:27:51,480 У нас зиракаунт остался единичкой. 569 00:27:54,520 --> 00:27:57,200 Это у нас не сработает, зеро-аккаунт у нас не сработает, 570 00:27:57,360 --> 00:27:59,960 и вот эта история у нас улучшится до трех. 571 00:28:01,160 --> 00:28:02,160 Только вопрос в том, 572 00:28:02,200 --> 00:28:03,200 нужно ли вообще здесь вычитать. 573 00:28:07,960 --> 00:28:08,960 Боо 574 00:28:09,120 --> 00:28:10,120 Макс 3 нам дам 4, 575 00:28:11,480 --> 00:28:13,480 значит не равно, значит мы вернем тройку. 576 00:28:14,120 --> 00:28:16,680 Окей, в этом случае сработал правильно, 577 00:28:16,840 --> 00:28:20,440 давай второй пример разберем, вот с более длинным ассистентом. 578 00:28:20,760 --> 00:28:22,760 Так, ну получается у нас 0, 579 00:28:23,080 --> 00:28:24,080 мы идем, 580 00:28:24,400 --> 00:28:25,400 вот эта история у нас сразу захватит, 581 00:28:27,040 --> 00:28:28,040 0 count у нас единичка, 582 00:28:28,880 --> 00:28:29,880 ну пусть будет там count 0. 583 00:28:31,040 --> 00:28:32,800 Ну ладно, не будем ссориться, 0 count единичка, 584 00:28:33,440 --> 00:28:34,440 это не срабатывает, 585 00:28:35,400 --> 00:28:36,400 у нас тут 0. 586 00:28:36,600 --> 00:28:37,600 Все как и должно быть. 587 00:28:37,600 --> 00:28:39,600 Дальше играем. Единичка. 588 00:28:39,600 --> 00:28:40,600 Получается у нас 0 каунт. 589 00:28:43,280 --> 00:28:45,274 Ну это не 0, а 0 count остается то же самое, 590 00:28:46,040 --> 00:28:48,040 12, вот всё как получается. 591 00:28:49,640 --> 00:28:53,958 Должно быть. То лишь когда пойдем к следующему дому, 592 00:28:54,080 --> 00:28:55,080 будет у нас, получается, 593 00:28:56,200 --> 00:28:58,200 тройка. Три. 594 00:28:59,520 --> 00:29:00,520 А если бы были единички, 595 00:29:01,760 --> 00:29:02,760 то у нас было бы два, 596 00:29:03,120 --> 00:29:05,160 потому что это какой-то единичек нам обязательно нужно. 597 00:29:05,320 --> 00:29:08,320 Ну пока вот, да не будем про это думать, пока вот этот пример. 598 00:29:08,760 --> 00:29:09,760 Дошли с нуля, дальше что? 599 00:29:10,800 --> 00:29:11,800 На этом все, подписывайтесь на канал, ставьте лайки, комментируйте видео, 600 00:29:11,800 --> 00:29:13,800 ставьте колокольчик, подписывайтесь на канал, ставьте у нас зир аккаунт уже 601 00:29:15,040 --> 00:29:17,040 будет двойкой, да? 602 00:29:17,040 --> 00:29:18,040 И мы заклонимся сюда в цикл, 603 00:29:18,040 --> 00:29:19,040 получается. 604 00:29:19,440 --> 00:29:20,440 и ищем следующий ноль. 605 00:29:22,040 --> 00:29:23,040 Увеличивается левый указатель, 606 00:29:23,920 --> 00:29:24,920 пока мы не найдем какой-то 607 00:29:24,960 --> 00:29:25,960 ноль. 608 00:29:26,040 --> 00:29:28,036 Вот, сначала у нас проверка на 0, 609 00:29:28,240 --> 00:29:30,239 получается, вот мы проверяем. 610 00:29:31,000 --> 00:29:32,000 и 611 00:29:32,720 --> 00:29:33,720 увеличиваем 612 00:29:34,720 --> 00:29:35,720 Мы уменьшаем зеркало, 613 00:29:35,920 --> 00:29:37,400 т.е. в следующий раз мы в эту цикл не будем заходить и увеличиваем 614 00:29:37,400 --> 00:29:38,400 амплитуду. 615 00:29:39,200 --> 00:29:40,200 Левый указатель вводить сюда, 616 00:29:40,960 --> 00:29:42,560 чтобы уже вот это следующее отмена смотреть. 617 00:29:46,480 --> 00:29:47,480 Да, 618 00:29:50,160 --> 00:29:52,159 да, пусть и так. 619 00:29:52,720 --> 00:29:53,720 И дальше мы уже будем смотреть дальше. 620 00:29:55,000 --> 00:29:56,996 Ну, то есть у нас сейчас тройка. 621 00:30:00,000 --> 00:30:04,996 Да, мы уже, ну, это мы уже вот здесь вот. Четыре, и это будет сколько? 622 00:30:05,080 --> 00:30:10,080 Четыре минус? Четыре минус пять, получается. 1, 2, 3 и вот это вот, 623 00:30:10,080 --> 00:30:12,079 вот это вот. Моя застрявшая перспектива. 624 00:30:13,840 --> 00:30:14,840 и дальше спустились внутрь. 625 00:30:15,960 --> 00:30:17,956 Мы, получается, смотрим. Ну, у нас максимально три. 626 00:30:19,120 --> 00:30:21,120 вот Поэтому сейчас у нас, 627 00:30:21,120 --> 00:30:23,120 да, указатели отнимаются, 628 00:30:23,120 --> 00:30:24,120 у нас получится тоже тройка. 629 00:30:25,800 --> 00:30:26,800 Тройка, 4 минуты за день тройка. 630 00:30:27,720 --> 00:30:33,520 Окей, мы получается получили в макс лежит тройка и зеро каунт один. 631 00:30:37,560 --> 00:30:38,560 1 632 00:30:38,760 --> 00:30:39,760 стоит, а правая вот на минуле. 633 00:30:40,640 --> 00:30:42,640 Ок, давай следующее тогда посмотрим. 634 00:30:43,040 --> 00:30:44,040 Вот единичка. 635 00:30:44,160 --> 00:30:46,200 Дальше у нас на единичках ничего меняться не будет, 636 00:30:46,280 --> 00:30:48,360 кроме того, что будет увеличиваться правый указатель. 637 00:30:48,720 --> 00:30:51,316 И получается, что у нас здесь будет четверка, пятерка. 638 00:30:52,080 --> 00:30:54,080 Пятерка, да, будет перед нулем. 639 00:30:54,320 --> 00:30:55,320 А потом ноль. 640 00:31:02,800 --> 00:31:03,800 Допустим, двигаемся сюда, 641 00:31:05,320 --> 00:31:06,960 у нас левый указатель будет уменьшаться, 642 00:31:07,080 --> 00:31:08,080 но число это останется, 643 00:31:08,160 --> 00:31:12,480 да, потому что мы берем максимальное из максимального, и вот эта разница 644 00:31:12,480 --> 00:31:13,480 указателей, 645 00:31:13,640 --> 00:31:15,636 получается, вот эта история у нас остается, 646 00:31:16,280 --> 00:31:19,279 идем, идем, идем, идем, идем, идем 647 00:31:19,279 --> 00:31:20,279 Доходим до вот этого нуля получается, 648 00:31:20,279 --> 00:31:23,199 на этом нуле мы обнулим декрементируемый зираккаунт. 649 00:31:23,800 --> 00:31:24,800 И получается остановимся, 650 00:31:26,560 --> 00:31:28,960 ну у нас уже левый указатель становится здесь, 651 00:31:29,160 --> 00:31:31,160 получается, перед единицей. 652 00:31:31,160 --> 00:31:33,000 И дальше то же самое делать до этого адреса. 653 00:31:33,720 --> 00:31:34,720 И мы получили пятерку, 654 00:31:35,480 --> 00:31:36,480 и мы вернем пятерку. 655 00:31:37,040 --> 00:31:38,040 Ок. 656 00:31:38,440 --> 00:31:40,440 Ну пятерка, да, если максимальный какой-то был, 657 00:31:40,600 --> 00:31:43,120 то каждый раз мы уже с ним будем сравнивать, соответственно, уже 658 00:31:43,520 --> 00:31:45,520 Ну окей, да, вроде работает. 659 00:31:45,520 --> 00:31:46,520 А вот эта точка есть, 660 00:31:46,520 --> 00:31:47,520 где три единички? 661 00:31:47,520 --> 00:31:51,545 Что будет? Для 3 единички мы просто дойдем до конца, вот, и у нас здесь 662 00:31:51,545 --> 00:31:52,545 максимум будет 2. 663 00:31:52,680 --> 00:31:53,680 И мы, получается, 664 00:31:53,840 --> 00:31:54,840 вот эту историю ни разу не затронули. 665 00:31:56,400 --> 00:31:57,400 Вот этот вот, точнее, 666 00:31:57,680 --> 00:31:58,680 вот этот вот сценарий. 667 00:31:59,440 --> 00:32:00,440 Правильно? 668 00:32:00,600 --> 00:32:01,600 Мы его затронем в случае, 669 00:32:02,960 --> 00:32:03,960 если... 670 00:32:04,120 --> 00:32:05,800 Да, по идее, вообще эта история не нужна. 671 00:32:06,240 --> 00:32:08,240 Мне кажется, что... 672 00:32:08,240 --> 00:32:12,400 По идее, да. Потому что у нас здесь и так всегда будет меньше. 673 00:32:13,000 --> 00:32:14,000 Ну, слушай, ну да, 674 00:32:14,040 --> 00:32:17,000 вроде всё работает по этим кейсам, которые я предоставил. 675 00:32:17,040 --> 00:32:19,040 Я, конечно, не лид-код, 676 00:32:19,040 --> 00:32:20,040 и не могу тут 180 кейсов написать. 677 00:32:21,320 --> 00:32:22,320 Но те, что есть, они работают. 678 00:32:24,120 --> 00:32:25,120 Ну, я, знаешь, какого-то еще придумал. 679 00:32:25,840 --> 00:32:27,840 А если будет, к примеру... 680 00:32:31,560 --> 00:32:34,720 Ну и задачка интересная, что-то я поднапрягся. 681 00:32:36,320 --> 00:32:38,320 Ну, это я ее добавлял. 682 00:32:38,320 --> 00:32:40,760 Я ее просто как-то решил на лицкоде и такой думаю, 683 00:32:40,960 --> 00:32:41,960 ну блин, прикольно. 684 00:32:42,160 --> 00:32:43,160 есть на что подумать 685 00:32:44,000 --> 00:32:46,000 ну это да на указателе 686 00:32:46,000 --> 00:32:47,000 на указателе очень редко мне давали 687 00:32:49,400 --> 00:32:50,400 такие задачки на фронте 688 00:32:52,720 --> 00:32:54,720 Угу. Так, ну окей, если 2-0, 689 00:32:54,840 --> 00:32:55,840 то получается, что мы заходим, 690 00:32:56,200 --> 00:32:59,280 у нас вот этот кейс в зеркалу напублируется, 691 00:32:59,480 --> 00:33:01,480 комментируется, будет объединиться. 692 00:33:01,480 --> 00:33:02,480 Я тебя не пропущу! 693 00:33:03,240 --> 00:33:04,240 А Макс у нас будет на лёд. 694 00:33:05,600 --> 00:33:06,600 Дальше летим. 695 00:33:06,760 --> 00:33:07,760 Получается вот эта история. 696 00:33:08,240 --> 00:33:09,240 У нас второй ноль. 697 00:33:09,240 --> 00:33:10,240 Зеркало у нас увеличится. 698 00:33:11,160 --> 00:33:15,880 Здесь мы левый указатель будем двигать. Получается до... 699 00:33:17,000 --> 00:33:20,080 То есть здесь у нас все так же будет ноутбук. 700 00:33:20,480 --> 00:33:22,479 Вот, мы смотрим, получается, 701 00:33:22,800 --> 00:33:23,800 что у нас два нуля, 702 00:33:25,120 --> 00:33:28,640 заходим сюда, смотрим на zero count, сразу уменьшаем на единицу, 703 00:33:28,680 --> 00:33:29,680 и левый указатель двигаем, 704 00:33:29,840 --> 00:33:30,840 вот, у нас будет здесь. 705 00:33:31,160 --> 00:33:32,760 Дальше опять считаем, разница указателя, 706 00:33:32,880 --> 00:33:34,880 она опять 0. И так, 707 00:33:34,880 --> 00:33:36,320 по идее, с бесконечным количеством нулевых. 708 00:33:36,680 --> 00:33:37,680 Хорошо, всё отлично. 709 00:33:37,960 --> 00:33:38,960 Я засчитываю эту задачу. 710 00:33:44,280 --> 00:33:45,280 На ПД он тоже должен сформироваться, 711 00:33:47,440 --> 00:33:48,440 вроде как я не вижу такого, 712 00:33:49,000 --> 00:33:51,000 что он там, он зайдет, 713 00:33:51,000 --> 00:33:52,000 вот здесь будет якунинчика. 714 00:33:53,080 --> 00:33:54,080 И здесь какой-то... Ну да, не, 715 00:33:54,720 --> 00:33:55,720 нормально так что-то. 716 00:33:55,840 --> 00:33:56,840 Так, ну вот я вроде интересно. 717 00:33:57,520 --> 00:33:58,520 Реально интересно. 718 00:34:01,280 --> 00:34:02,280 что она полностью прошла все кейсы. 719 00:34:05,320 --> 00:34:07,320 Да, прям все кейсы прошли. 720 00:34:07,960 --> 00:34:10,920 Ты решил даже меньше кода написал, чем я. 721 00:34:11,480 --> 00:34:12,480 потому что я 722 00:34:12,960 --> 00:34:14,760 Знаешь, как я это решаю, у меня сейчас интересно. 723 00:34:27,680 --> 00:34:28,680 Да, у нас по времени. 724 00:34:29,760 --> 00:34:33,400 Я просто сохранял предыдущую позицию Гуляев. 725 00:34:33,960 --> 00:34:35,960 То есть, ему тогда... 726 00:34:35,960 --> 00:34:36,960 А когда находили нолик, 727 00:34:38,320 --> 00:34:43,240 мы записывали его позицию, и потом, когда находим следующий нолик, 728 00:34:43,360 --> 00:34:44,360 в left, получается, 729 00:34:45,040 --> 00:34:46,040 вставляли просто цифру. 730 00:34:46,920 --> 00:34:47,920 И это получалось... 731 00:34:52,440 --> 00:34:53,440 Если у тебя идёт, например, 732 00:34:53,640 --> 00:34:54,640 максимум 1 733 00:34:56,840 --> 00:34:57,840 100 миллионов единиц. 734 00:34:58,640 --> 00:34:59,640 и потом 0. 735 00:35:00,040 --> 00:35:01,040 ты будешь, получается, 736 00:35:01,320 --> 00:35:02,960 вот эти 100 миллионов инкрементировать, 737 00:35:03,040 --> 00:35:04,040 потому что ноля ты нигде не найдешь. 738 00:35:05,760 --> 00:35:07,759 И, наверное, в этом кейсе, 739 00:35:07,759 --> 00:35:08,759 только вот за счет этого. 740 00:35:11,040 --> 00:35:13,920 Но в целом, сложность в любом случае будет. 741 00:35:18,920 --> 00:35:19,920 В идее у нас два указателя. 742 00:35:22,800 --> 00:35:26,440 Один будет бежать и сравнивать какие-то константные операции. 743 00:35:26,680 --> 00:35:29,080 И если один у нас встанет, то второй будет бежать. 744 00:35:29,800 --> 00:35:30,800 То есть у нас два указателя, 745 00:35:31,640 --> 00:35:34,960 в худшем случае два указателя пробегутся оба по массиву. 746 00:35:35,000 --> 00:35:37,480 То есть один дойдет до конца, и там второй дойдет до конца. 747 00:35:38,000 --> 00:35:39,000 Если такой будет возможный вариант. 748 00:35:41,160 --> 00:35:42,160 То есть два раза мы пройдемся, 749 00:35:42,360 --> 00:35:43,360 получается. 750 00:35:43,440 --> 00:35:44,440 Ну вот он, 751 00:35:44,880 --> 00:35:46,879 по сути, как бы. Да, вот он, 752 00:35:46,879 --> 00:35:49,634 по сути. Тут тоже как бы вайл, как будто может показаться, 753 00:35:49,634 --> 00:35:53,166 что там какой-то может он квадрат появится, но по идее это просто второй 754 00:35:53,166 --> 00:35:55,166 указатель, который просто... 755 00:35:55,166 --> 00:35:59,446 Не-не-не, здесь точно не будет ни квадрата, ни в каком случае... 756 00:35:59,446 --> 00:36:03,046 Даже как в примере, который я придумал, когда 100 миллионов единиц, 757 00:36:03,046 --> 00:36:04,046 а перед ними ноли, а после них ноли. 758 00:36:04,046 --> 00:36:07,166 Ну ОТН это как бы так для общего понимания, там всегда можно 759 00:36:07,166 --> 00:36:08,166 углубляться в... 760 00:36:13,520 --> 00:36:14,520 Я точно не требую для собеседования, 761 00:36:15,200 --> 00:36:16,200 это в принципе тебе не надо. 762 00:36:16,760 --> 00:36:18,759 Ну в целом да, в целом правильно. 763 00:36:19,000 --> 00:36:20,000 Интересно, 764 00:36:20,160 --> 00:36:21,160 зачем я похотел. 765 00:36:22,280 --> 00:36:23,280 Мне прям понравилось твоё решение, 766 00:36:24,600 --> 00:36:26,599 да. Оно просто меньше, 767 00:36:26,599 --> 00:36:27,599 чем моё по ходу. 768 00:36:28,280 --> 00:36:33,320 То есть ты просто написал «while», а я ещё занимался этим сохранением. 769 00:36:36,920 --> 00:36:38,916 Так, у нас уже времени не осталось. 770 00:36:39,720 --> 00:36:40,720 Не буду говорить. 771 00:36:45,360 --> 00:36:48,920 Ну я тебе могу сказать ее условия, просто мы уже порешать не успеем, 772 00:36:49,480 --> 00:36:53,600 там как бы даны два сортированных списка 1.3.5 773 00:36:54,120 --> 00:36:55,120 И два, 774 00:36:55,240 --> 00:36:56,240 четыре шага. 775 00:36:57,600 --> 00:37:00,880 и нужно их объединить в один тоже спортированный связанный список. 776 00:37:01,360 --> 00:37:05,240 Который будет состоять из этих нот в этих списках. 777 00:37:05,440 --> 00:37:06,440 То есть вот в этом тесте. 778 00:37:06,960 --> 00:37:07,960 Два указателя тоже будет получается. 779 00:37:08,800 --> 00:37:11,160 Они то по одному будут, то по другому. Ну по идее вот так. 780 00:37:11,440 --> 00:37:12,440 Но это связанные списки. 781 00:37:12,920 --> 00:37:13,920 Там нету указателя. 782 00:37:14,360 --> 00:37:19,353 Ну, точнее как. Я имею ввиду, что там не совсем, типа, снайдинг видно будет, 783 00:37:19,353 --> 00:37:20,353 то есть там будут указатели. 784 00:37:21,480 --> 00:37:27,480 просто на ноду текущую в этом списке, вот и все. 785 00:37:28,560 --> 00:37:29,560 То есть если будет список 1, 786 00:37:31,040 --> 00:37:33,040 3, 5 и 2, 4, 6, 787 00:37:33,840 --> 00:37:35,836 то понятное дело там финальное будет это 1, 2, 788 00:37:36,360 --> 00:37:37,360 3, 4, 5, 6, 789 00:37:37,400 --> 00:37:40,400 вот. Отлично, отлично. 790 00:37:40,400 --> 00:37:41,400 Тогда, 791 00:37:41,520 --> 00:37:43,640 может быть, ко мне какие-то вопросы есть. 792 00:37:51,640 --> 00:37:53,636 О, я вот этих вещей не знаю. 793 00:37:54,800 --> 00:37:55,800 А куда ты собеседуешься? 794 00:37:59,240 --> 00:38:00,240 Нет, 795 00:38:00,800 --> 00:38:01,800 это... там сложно всё ставить. 796 00:38:05,080 --> 00:38:06,080 Короче, я работаю в... 797 00:38:07,560 --> 00:38:08,560 он частично только 798 00:38:08,600 --> 00:38:09,600 на самом деле он в основном 799 00:38:11,240 --> 00:38:12,240 Продюсер 800 00:38:12,520 --> 00:38:13,520 Нам просто вот в команду, 801 00:38:15,000 --> 00:38:16,000 ну и я получил, 802 00:38:16,920 --> 00:38:20,040 а если еще были конкретно, это я в команде. 803 00:38:23,000 --> 00:38:24,000 Мы за системы вопросов. 804 00:38:25,480 --> 00:38:26,480 И к нам вот недавно рабочий пришел. 805 00:38:28,120 --> 00:38:30,120 Сегодня я расскажу вам о том, как сделать подписывайтесь на мой канал, 806 00:38:30,120 --> 00:38:32,120 ставьте Благословляю вас. 807 00:38:32,120 --> 00:38:33,120 Благословляю вас. 808 00:38:33,120 --> 00:38:34,120 Иногда приходит стипл. 809 00:38:34,160 --> 00:38:37,000 Я имею ввиду, что это внутренние нужды. 810 00:38:38,920 --> 00:38:40,920 А куда еще, кстати, 811 00:38:40,920 --> 00:38:42,916 ну... или у тебя только один вариант? 812 00:38:42,916 --> 00:38:45,296 Я так понял, что за *** просто интересно по команду поспрашивать и 813 00:38:45,296 --> 00:38:46,296 так далее, по процессу, но... 814 00:38:46,920 --> 00:38:48,920 Ну, понятно. Ну, тогда да. 815 00:38:48,920 --> 00:38:49,920 Тогда это точно никому не... Ну, 816 00:38:49,920 --> 00:38:51,920 ничего не знаю. Я и 817 00:38:55,320 --> 00:38:58,320 Ну, прям, что-то скандальное не скажу тебе. 818 00:39:03,000 --> 00:39:06,320 В следующий этап же будет у тебя, и поговоришь там с лидом. 819 00:39:06,320 --> 00:39:07,880 Ну да, все это, да, мы с Ришимпу спрашиваем. 820 00:39:08,160 --> 00:39:10,160 Ну, тогда, наверное, 821 00:39:10,160 --> 00:39:11,160 таких вот вопросов нет. 822 00:39:11,160 --> 00:39:14,154 Не знаю, просто если так в общем нравится тебе, нормально. 823 00:39:14,560 --> 00:39:17,560 Да, Леглопов. Я здесь всего-то 9 месяцев. 824 00:39:18,560 --> 00:39:19,560 В целом, все справилось. 825 00:39:21,560 --> 00:39:22,560 Ну, 826 00:39:23,800 --> 00:39:27,160 в целом, команда фронтов у нас в Денайсах достаточно сильная. 827 00:39:27,440 --> 00:39:29,640 И, да, и разница от команды в команде, это правда. 828 00:39:30,520 --> 00:39:35,680 И прям даже спектр работы вообще не отличается от команды в команде. 829 00:39:35,960 --> 00:39:36,960 Поэтому и выбирать лучше. 830 00:39:40,360 --> 00:39:41,360 Там у них, 831 00:39:41,800 --> 00:39:42,800 насколько я помню, 832 00:39:43,160 --> 00:39:46,960 много работы идёт вот с этими цельными ВБКС-батронками есть. 833 00:39:47,880 --> 00:39:49,880 Я слышал, что... 834 00:39:51,560 --> 00:39:52,560 Но это может быть неправда, 835 00:39:53,040 --> 00:39:54,040 может быть я что-то путаю. 836 00:39:54,680 --> 00:39:56,679 Я, кстати, когда сюда шел, 837 00:39:57,200 --> 00:39:58,200 я тоже командир. 838 00:40:01,040 --> 00:40:02,040 И еще что-то, не помню. 839 00:40:02,400 --> 00:40:04,399 А, я выбрал Путина. 840 00:40:09,960 --> 00:40:12,920 Отлично, хорошо, я тогда напишу фейдбэк и я к тебе вчера вернусь. 841 00:40:13,600 --> 00:40:15,600 Да, супер. Хорошо, 842 00:40:15,600 --> 00:40:18,600 спасибо, всё, пока. 843 00:40:18,600 --> 00:40:19,600 Да, пока.
Leave a Comment