Очень нравится подача материала 🔥 Ведущий прям круто рассказывает, всё легко, живо и понятно!
@mary5betheone6634 күн бұрын
Непростая тема, но очень понравилось объяснение в видео! Всё четко и понятно! Спасибо!
@green_nechto5 күн бұрын
Кирилл, ты крут, бро😎🔥
@Alexchtch6 күн бұрын
Сеньор разработчик вначале спросит, а точно это надо решать? И если да, а точно на языке JS?
@Alexchtch6 күн бұрын
А ещё подумает, а его коллеги смогут поревьювить решение? А кто-то будет в отпуске? А он сам когда уходит в отпуск? А куа смогут потестить? А какие сценарии им правильно дать? А можно добавить ли тесты? А можно ли убрать тесты? А подходит ли это к стайлгайду? А у нас вообще есть что-то похожее? А может сразу обсудить с другими? А будет ли это блокером? А может сразу надо с дизайнерами переговорить?...
@SergiyAntonyuk_PhD6 күн бұрын
Так где анализ, вычислительной сложности алгоритма? Решение СЕНЬЁРА может оказаться не самым эффективным по O() ( Big O), хотя запись решения компактная (выгдядит красиво). Просто, тот кто пользуется этим решением должен ЗНАТЬ что в общем случае вычислительная сложность метода Метод Math.min(...row) составляет O(n), где n - количество элементов в массиве row.
@gooseob5 күн бұрын
Они разве что сложностью по памяти отличются, у последнего константная, у предыдущих n. По времени все n^2
@Andreypochemu6 күн бұрын
самое тупое видео, что я видел
@Gorysvet7 күн бұрын
Побольше таких видео!
@DeSpectraLDemon7 күн бұрын
Джун: пишет как может, о скорости не задумывается, код громоздкий но понятен даже уборщице; результат: 824мс Сеньор: задумывается о скорости алгоритма, код более читабельный (без гугла не разберется даже он сам на следующий день); результат: 823мс 👍
@reimus166 күн бұрын
на эту стату нет смысла смотреть она +- одинаковая будет для всех быстрых тестов, надо смотреть время под рандомными тестами, там точнее показывает
@athreefu91515 күн бұрын
В рамках большого бизнеса если каждый процесс сократить даже на вроде бы минимальное значение, то затраты / скорость загрузки сильно уменьшаться
@dontyta35627 күн бұрын
У меня вопрос: а почему джуниор сначала сохраняет минимумы в массив, а потом их складывает, создавая новую переменную через let, если можно сразу создать переменную через let и складывать в одном цикле (js я не знаю, просто по общим правилам программирования спросил)?
@panfilovandrey2 күн бұрын
Потому что они джунов набирают с помойки. :)
@grincha097 күн бұрын
Странно что сеньер будет использовать спред, когда он должен знать, что при большом количестве элементов в массиве вывалится ошибка 😅
@grincha097 күн бұрын
Ну и производительность слегка хуже у спреда по сравнению с обычным циклом
@mcltdtm4207 күн бұрын
почему .reduce() в решении сеньора имеет инициализацию аккумулятора 0, а в решении мидла её нет?
@VictuallyIAm5 күн бұрын
В решении мидла мы можем использовать в качестве начального значения первый элемент массива, потому что это одно из чисел, которые надо сложить. Если не указать начальное значение, то как раз первый элемент за него и будет принят. А во втором случае первый элемент массива сам массив, а нам надо складывать числовые результаты начиная с 0, поэтому мы явно указываем начальное значение < 3
@leksscoffee28648 күн бұрын
Вот знаю же про map, а в голове решил, через цикл
@ImDeadInside838 күн бұрын
Ну значит я сеньор. Спасибо
@user-bo9ms7zn2p8 күн бұрын
супер! ещё!
@maxusgladiussimone310010 күн бұрын
// "Стильный черный фон в начале, Отличное качество картинки, Изысканное боке, Продуманная последовательность изложения, Четкая внятная речь. Очень содержательно"; Гони мне донат за лажу.
@foo4444412 күн бұрын
почему женщина не на кухне? непорядок!
@evgeniipetrenko201911 күн бұрын
возвращайся обратно в свой каменный век))))
@VovanEkb12 күн бұрын
эээээ хотите 10 минут жизни сэкономить? Она загуглила "популярные фреймворки для js" и просто это выдала... типа весь ролик это React,vue,angular,svelte серьезно? ох да, там еще редакс с мобиксом... вот это контеееент, вот это спасибо за предложку гугол... главное не забудьте что у них есть уроки программирования слышкупи
@alexshefer118713 күн бұрын
Тебе откуда знать?
@virtuoz-ru15 күн бұрын
Реакт это безпонтовая шляпа, состоящая из сторонних библиотек.
@YouTube57samp15 күн бұрын
Понятно все объясняешь за это респект, думаю если ты бы снял обучение питону с нуля то это принесло бы тебе много подписчиков👍👍👍
@user-sc3ht8ti4o15 күн бұрын
Спасибо, Анастасия!!!!
@user-bv9fs5bx9o15 күн бұрын
Спасибо, очень ценная инфа.
@Mark-wn4op18 күн бұрын
symbol и bigint пошли гулять
@YellowPanamka19 күн бұрын
Это прикольный код с точки зрения оптимизации, если нужен очень-очень быстрый код и есть много времени его писать, но по факту лучший код для прода это код по принципу KISS, что больше всего подходит к решению джуна.
@no101vmv19 күн бұрын
В общем ссылки ютуб удаляет. Решение такое. 1. Проходимся по первому слову слева до тех пор пока не встретим букву увеличивая левый указатель. 2. Далее делаем тоже самое со вторым словом но справа уменьшая правый указатель. 3. Все буквы приводим сразу к одному регистру. 4. Если эти буквы разные и переменная isPalindrom = true(при создании переменной по умолчанию задаем тру) - то переменная палиндром становится фолс. 5. Если в map отсутствует буква полученная из слова слева - записываем ее туда со значением 1. Иначе добавляем к значению под этой буквой - 1. 6. Если буква из слова справа отсутствует в мапе, добавляем ее со значением -1. Иначе уменьшаем значение в сапе на 1. Двигаем левый и правый указатель. Если в мапе есть хотя бы одно значение отличное от 0 - значит слова не анаграммы.
@Grentanksmog19 күн бұрын
Классное решение! По сути, ты используешь один объект частотностей, в котором делаешь ±1, а также не проходишь по каждому слову дважды. То есть за один проход по слову ты и собираешь частотность, и проверяешь палиндромность. Это любопытный пример, когда моё решение, которое следует принципу единственной ответственности (SRP, как в принципах SOLID) является более вычислительно затратным, нежели когда всё совместно вычисляется.
@no101vmv19 күн бұрын
не понимаю куда пропадает мой комментарий.... 1. Видимо плохо объяснил условие(((( В общем сравнивать нужно было является ли первое слово палиндромом для второго. 2. Я прикладывал решение на питоне. Но что то комент пропадает.
@ElbrusBootcamp19 күн бұрын
Пропадает, не видно(
@gamepad314020 күн бұрын
Столько подводных камней не объяснили, а ребята мучаются. 1) Снимите ограничения с PowerShell через Set-ExecutionPolicy RemoteSigned (запуск от администратора) 2) На винде venv активируется через venv\Scripts\activate 3) в обычной версии aiogram нету executor, надо скачивать новую pip install --force-reinstall -v "aiogram==2.23.1" 4) нет комментариев от вас по теме 6-й строки про логгирование
@imimiiiiКүн бұрын
спасибо, что написали про executor, а то ничего не получается с ним, не могла понять что не так :'')
@polalp859921 күн бұрын
можно сделать быстрее, насколько я понимаю. Можно создавать только одну хеш таблицу, а затем проходиться циклом по буквам из второго слова, вычитая эти символы из таблицы. Так мы избавимся от лишнего цикла. потом проверить, что все object.value равны 0
@Grentanksmog20 күн бұрын
Какая интересная идея! Звучит здраво 👏
@no101vmv19 күн бұрын
Логичнее проверить что хотя бы один не равен 0) any
@user-oz3ze5eb3s21 күн бұрын
а как находить задачи определенного типа например я хочу по решать задачт связанные с типом словарь
@ElbrusBootcamp19 күн бұрын
На платформах LeetCode, HackerRank, и CodeSignal задачи можно фильтровать по конкретным темам и структурам данных, включая словари.
@romanmed903522 күн бұрын
а не надо ли изначально сравнить строки на размер для первой проверки? если он разный, то явно что не одинаковые и нет смысла далее проверять. конечно на 100 символах это не важно, а на 100тыс уже имеет значение. да вероятно и во втором так же, хотя тут уже не уверен. и третье решение второго варианта все же очень много раз итерации по строкам проходит да еще и не в одном месте.
@Grentanksmog21 күн бұрын
Да, очень верное замечание! Перед тем, как переходить к циклам и всем остальным проверкам стоит вначале проверить длину строк 👏
@romanmed903520 күн бұрын
@@Grentanksmog спасибо.
@no101vmv19 күн бұрын
Длину строк имеет смысл проверять только если это одно слово без пробелов и знаков препинания. Ну, точнее если мы из тоже учитываем. Я приложил свое решение в комментарии к видео но комментарий почему то пропадает
@abdiqadyryerzhanov782022 күн бұрын
Приветствую! Я думаю, интереснее будет реальные задачи во фронтенде или бэкенде, логические, это личное мое мнение!
Сортировка конечно тоже ок, но было бы неплохо послушать более advanced темы, типа алгоритмических паттернов, скользящее окно например. Это было бы полезней при решении задач
@ElbrusBootcamp19 күн бұрын
Тоже полезно, да
@kitN26 күн бұрын
Какая назуй сортивровка пузырьком? Тетя ты моросишь детский бред, займись делом
@panfilovandrey26 күн бұрын
Опять какие-то сомнительные подходы. Ну джун понятно все сделал в лоб, Я сразу подумал, что можно вытащить значения, причем вытаскивать индексы месяцев не имело смысла, можно было вытаскивать значения и по ним циклом простым идти. Переменной итоговой достаточно одной, просто делать +1 или -1 в зависимости от значения. Два фильтра - это два раза проход по массиву, зачем? Тут просто цикл гораздо проще. Решение сеньора сомнительное в плане дальнейшей поддержки, если как-то поменяется формат входных данных, придется что-то придумывать. Да и читабельность кода хреновая. Сеньор не показывает знания всех методов, а следит за качеством кода и целостностью системы.
@AdskiyVolk26 күн бұрын
Знаю этого актера 😂 Друг, спасибо за контент)
@kirillsundaen881028 күн бұрын
Анастасия - красавица! только right, не rigth )
28 күн бұрын
Благодарю!) да, я исправила эту опечатку в конце) спасибо
@newjerseyAVGN29 күн бұрын
Это всё херня, попробуйте написать полноценный шелл на 20 команд. Копирование, перемещение, удаление файлов и папок, спеки компа, спеки сети и прочая лабуда. Дерзайте!
@user-xn2cr5oe4p29 күн бұрын
Что за устаревшие циклы фор? Вы из двухтысячных вылезли????
@user-cp4px6oz5n29 күн бұрын
а какой ты тут хочешь предложить использовать?)
@user-xn2cr5oe4p28 күн бұрын
@@user-cp4px6oz5n современные es 6 методы
@vitaly-26 күн бұрын
соболезную, если ты используешь циклы только по принципу новизны, а не те, которые подходят под конкретную ситуацию.
@user-xn2cr5oe4p26 күн бұрын
@@vitaly- а я соболезную тебе , что ты застрявший в прошлом человечек, не готовый принимать новые технологии. Ты ещё поворчи типа: «Вот молодеж нынче пошла»….
@vitaly-26 күн бұрын
@@user-xn2cr5oe4p хахахахаах, какие технологии? и как ты собрался писать условие выхода из цикла "len - 1 - i" не используя for или while? школу хоть закончил бы, прежде чем такой бред писать...
@user-sc3ht8ti4o29 күн бұрын
Спасибо!
@user-pz9dc1kk4dАй бұрын
Супердоступно и понятно, спасибо большое!
@mcltdtm420Ай бұрын
вариантов решений может быть много. только вот у меня вопрос относительно производительности каждого варианта. без тестов, на первый взгляд, решения "Джуна" самое быстрое. или я ошибаюсь?
@dadaVolodaАй бұрын
ошибаешься, у джуна O(n^2) сложность, у синьора O(n) вообще думаю большинство разработчиков решат эту задачу одинаково, без замыкания и в пару строк, потому что читабильность/понимание в приоритете let sum = 0 return arr.map(el => sum += el)
@mcltdtm420Ай бұрын
@@dadaVoloda а Вы производительность кода по читабильности кода определяете?
@dadaVolodaАй бұрын
@@mcltdtm420 а Вы меня троллите или серьезно спрашиваете? Первая часть сообщения про производительность, там имеется ввиду, что в примере с джуном цикл в цикле, получается квадратичная сложность, в случае с сеньором один проход по массиву - линейная сложность. А во второй части сообщения я уже высказал свое мнение, как по-моему напишет большинство на проекте, никто не будет использовать цикл фор, когда это можно сделать с помощью метода быстрее и удобнее
@mcltdtm42023 күн бұрын
@@dadaVoloda 1. где вы увидели "у джуна O(n^2)"? там менше итераций цикла. 2. почему вы считаете, что перебор по циклу и в методе масива занимают одинаковое количество времени?
@mcltdtm42023 күн бұрын
@@dadaVoloda в случае с джуном код может иметь вид в один цикл как и в .map() function add(arr) { const sums = []; let sum = 0; for (let i = 0; i < arr.length; i++) { sum += arr[i]; sums.push(sum); } return sums; } так какой код производительней? джуниор з O(n) или .map() з O(n)?
@BLUEGLUETutorialsАй бұрын
А ты попросил написать "hello world"
@aksenovkirill5191Ай бұрын
Первую задачу, решая черех includes - это сразу O(n2) по времени Задачу надо решать через map = {}
@user-gz1wl2rp4vАй бұрын
джуны не настолько тупые, чтобы в брутфорсить эту задачу...
@liltousinАй бұрын
Сразу подумал решать через map, теперь я не джун без опыта а синьер без опыта😂
@PhilormoniaАй бұрын
Когда прописал команду pip install aiogram в терминал у меня скачался aiogram, но когда из его библиотеки импортировал бота и диспетчер, у меня выходила ошибка, что '('''Не удается разрешить импорт "aiogram"')''помогите исправить. Так было и с pytelegrambotapi не могу найти решение проблемы( , помогите пожалуйста