Пікірлер
@tatjanaalfimova4560
@tatjanaalfimova4560 4 күн бұрын
Очень нравится подача материала 🔥 Ведущий прям круто рассказывает, всё легко, живо и понятно!
@mary5betheone663
@mary5betheone663 4 күн бұрын
Непростая тема, но очень понравилось объяснение в видео! Всё четко и понятно! Спасибо!
@green_nechto
@green_nechto 5 күн бұрын
Кирилл, ты крут, бро😎🔥
@Alexchtch
@Alexchtch 6 күн бұрын
Сеньор разработчик вначале спросит, а точно это надо решать? И если да, а точно на языке JS?
@Alexchtch
@Alexchtch 6 күн бұрын
А ещё подумает, а его коллеги смогут поревьювить решение? А кто-то будет в отпуске? А он сам когда уходит в отпуск? А куа смогут потестить? А какие сценарии им правильно дать? А можно добавить ли тесты? А можно ли убрать тесты? А подходит ли это к стайлгайду? А у нас вообще есть что-то похожее? А может сразу обсудить с другими? А будет ли это блокером? А может сразу надо с дизайнерами переговорить?...
@SergiyAntonyuk_PhD
@SergiyAntonyuk_PhD 6 күн бұрын
Так где анализ, вычислительной сложности алгоритма? Решение СЕНЬЁРА может оказаться не самым эффективным по O() ( Big O), хотя запись решения компактная (выгдядит красиво). Просто, тот кто пользуется этим решением должен ЗНАТЬ что в общем случае вычислительная сложность метода Метод Math.min(...row) составляет O(n), где n - количество элементов в массиве row.
@gooseob
@gooseob 5 күн бұрын
Они разве что сложностью по памяти отличются, у последнего константная, у предыдущих n. По времени все n^2
@Andreypochemu
@Andreypochemu 6 күн бұрын
самое тупое видео, что я видел
@Gorysvet
@Gorysvet 7 күн бұрын
Побольше таких видео!
@DeSpectraLDemon
@DeSpectraLDemon 7 күн бұрын
Джун: пишет как может, о скорости не задумывается, код громоздкий но понятен даже уборщице; результат: 824мс Сеньор: задумывается о скорости алгоритма, код более читабельный (без гугла не разберется даже он сам на следующий день); результат: 823мс 👍
@reimus16
@reimus16 6 күн бұрын
на эту стату нет смысла смотреть она +- одинаковая будет для всех быстрых тестов, надо смотреть время под рандомными тестами, там точнее показывает
@athreefu9151
@athreefu9151 5 күн бұрын
В рамках большого бизнеса если каждый процесс сократить даже на вроде бы минимальное значение, то затраты / скорость загрузки сильно уменьшаться
@dontyta3562
@dontyta3562 7 күн бұрын
У меня вопрос: а почему джуниор сначала сохраняет минимумы в массив, а потом их складывает, создавая новую переменную через let, если можно сразу создать переменную через let и складывать в одном цикле (js я не знаю, просто по общим правилам программирования спросил)?
@panfilovandrey
@panfilovandrey 2 күн бұрын
Потому что они джунов набирают с помойки. :)
@grincha09
@grincha09 7 күн бұрын
Странно что сеньер будет использовать спред, когда он должен знать, что при большом количестве элементов в массиве вывалится ошибка 😅
@grincha09
@grincha09 7 күн бұрын
Ну и производительность слегка хуже у спреда по сравнению с обычным циклом
@mcltdtm420
@mcltdtm420 7 күн бұрын
почему .reduce() в решении сеньора имеет инициализацию аккумулятора 0, а в решении мидла её нет?
@VictuallyIAm
@VictuallyIAm 5 күн бұрын
В решении мидла мы можем использовать в качестве начального значения первый элемент массива, потому что это одно из чисел, которые надо сложить. Если не указать начальное значение, то как раз первый элемент за него и будет принят. А во втором случае первый элемент массива сам массив, а нам надо складывать числовые результаты начиная с 0, поэтому мы явно указываем начальное значение < 3
@leksscoffee2864
@leksscoffee2864 8 күн бұрын
Вот знаю же про map, а в голове решил, через цикл
@ImDeadInside83
@ImDeadInside83 8 күн бұрын
Ну значит я сеньор. Спасибо
@user-bo9ms7zn2p
@user-bo9ms7zn2p 8 күн бұрын
супер! ещё!
@maxusgladiussimone3100
@maxusgladiussimone3100 10 күн бұрын
// "Стильный черный фон в начале, Отличное качество картинки, Изысканное боке, Продуманная последовательность изложения, Четкая внятная речь. Очень содержательно"; Гони мне донат за лажу.
@foo44444
@foo44444 12 күн бұрын
почему женщина не на кухне? непорядок!
@evgeniipetrenko2019
@evgeniipetrenko2019 11 күн бұрын
возвращайся обратно в свой каменный век))))
@VovanEkb
@VovanEkb 12 күн бұрын
эээээ хотите 10 минут жизни сэкономить? Она загуглила "популярные фреймворки для js" и просто это выдала... типа весь ролик это React,vue,angular,svelte серьезно? ох да, там еще редакс с мобиксом... вот это контеееент, вот это спасибо за предложку гугол... главное не забудьте что у них есть уроки программирования слышкупи
@alexshefer1187
@alexshefer1187 13 күн бұрын
Тебе откуда знать?
@virtuoz-ru
@virtuoz-ru 15 күн бұрын
Реакт это безпонтовая шляпа, состоящая из сторонних библиотек.
@YouTube57samp
@YouTube57samp 15 күн бұрын
Понятно все объясняешь за это респект, думаю если ты бы снял обучение питону с нуля то это принесло бы тебе много подписчиков👍👍👍
@user-sc3ht8ti4o
@user-sc3ht8ti4o 15 күн бұрын
Спасибо, Анастасия!!!!
@user-bv9fs5bx9o
@user-bv9fs5bx9o 15 күн бұрын
Спасибо, очень ценная инфа.
@Mark-wn4op
@Mark-wn4op 18 күн бұрын
symbol и bigint пошли гулять
@YellowPanamka
@YellowPanamka 19 күн бұрын
Это прикольный код с точки зрения оптимизации, если нужен очень-очень быстрый код и есть много времени его писать, но по факту лучший код для прода это код по принципу KISS, что больше всего подходит к решению джуна.
@no101vmv
@no101vmv 19 күн бұрын
В общем ссылки ютуб удаляет. Решение такое. 1. Проходимся по первому слову слева до тех пор пока не встретим букву увеличивая левый указатель. 2. Далее делаем тоже самое со вторым словом но справа уменьшая правый указатель. 3. Все буквы приводим сразу к одному регистру. 4. Если эти буквы разные и переменная isPalindrom = true(при создании переменной по умолчанию задаем тру) - то переменная палиндром становится фолс. 5. Если в map отсутствует буква полученная из слова слева - записываем ее туда со значением 1. Иначе добавляем к значению под этой буквой - 1. 6. Если буква из слова справа отсутствует в мапе, добавляем ее со значением -1. Иначе уменьшаем значение в сапе на 1. Двигаем левый и правый указатель. Если в мапе есть хотя бы одно значение отличное от 0 - значит слова не анаграммы.
@Grentanksmog
@Grentanksmog 19 күн бұрын
Классное решение! По сути, ты используешь один объект частотностей, в котором делаешь ±1, а также не проходишь по каждому слову дважды. То есть за один проход по слову ты и собираешь частотность, и проверяешь палиндромность. Это любопытный пример, когда моё решение, которое следует принципу единственной ответственности (SRP, как в принципах SOLID) является более вычислительно затратным, нежели когда всё совместно вычисляется.
@no101vmv
@no101vmv 19 күн бұрын
не понимаю куда пропадает мой комментарий.... 1. Видимо плохо объяснил условие(((( В общем сравнивать нужно было является ли первое слово палиндромом для второго. 2. Я прикладывал решение на питоне. Но что то комент пропадает.
@ElbrusBootcamp
@ElbrusBootcamp 19 күн бұрын
Пропадает, не видно(
@gamepad3140
@gamepad3140 20 күн бұрын
Столько подводных камней не объяснили, а ребята мучаются. 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
@imimiiii Күн бұрын
спасибо, что написали про executor, а то ничего не получается с ним, не могла понять что не так :'')
@polalp8599
@polalp8599 21 күн бұрын
можно сделать быстрее, насколько я понимаю. Можно создавать только одну хеш таблицу, а затем проходиться циклом по буквам из второго слова, вычитая эти символы из таблицы. Так мы избавимся от лишнего цикла. потом проверить, что все object.value равны 0
@Grentanksmog
@Grentanksmog 20 күн бұрын
Какая интересная идея! Звучит здраво 👏
@no101vmv
@no101vmv 19 күн бұрын
Логичнее проверить что хотя бы один не равен 0) any
@user-oz3ze5eb3s
@user-oz3ze5eb3s 21 күн бұрын
а как находить задачи определенного типа например я хочу по решать задачт связанные с типом словарь
@ElbrusBootcamp
@ElbrusBootcamp 19 күн бұрын
На платформах LeetCode, HackerRank, и CodeSignal задачи можно фильтровать по конкретным темам и структурам данных, включая словари.
@romanmed9035
@romanmed9035 22 күн бұрын
а не надо ли изначально сравнить строки на размер для первой проверки? если он разный, то явно что не одинаковые и нет смысла далее проверять. конечно на 100 символах это не важно, а на 100тыс уже имеет значение. да вероятно и во втором так же, хотя тут уже не уверен. и третье решение второго варианта все же очень много раз итерации по строкам проходит да еще и не в одном месте.
@Grentanksmog
@Grentanksmog 21 күн бұрын
Да, очень верное замечание! Перед тем, как переходить к циклам и всем остальным проверкам стоит вначале проверить длину строк 👏
@romanmed9035
@romanmed9035 20 күн бұрын
@@Grentanksmog спасибо.
@no101vmv
@no101vmv 19 күн бұрын
Длину строк имеет смысл проверять только если это одно слово без пробелов и знаков препинания. Ну, точнее если мы из тоже учитываем. Я приложил свое решение в комментарии к видео но комментарий почему то пропадает
@abdiqadyryerzhanov7820
@abdiqadyryerzhanov7820 22 күн бұрын
Приветствую! Я думаю, интереснее будет реальные задачи во фронтенде или бэкенде, логические, это личное мое мнение!
@ElbrusBootcamp
@ElbrusBootcamp 22 күн бұрын
Спасибо! Учтем
@user-ud3uw3cf4s
@user-ud3uw3cf4s 23 күн бұрын
это гениально, и комментаторы гении
@egoreast
@egoreast 25 күн бұрын
const add = (numbers) => numbers.reduce((acc, curr) => { const lastInAcc = acc.at(-1) if (!lastInAcc) return [curr] return [...acc, lastInAcc + curr] }, [])
@XSanjarX
@XSanjarX 25 күн бұрын
почему у меня не работает функция await
@ArtFanRamm
@ArtFanRamm 26 күн бұрын
Сортировка конечно тоже ок, но было бы неплохо послушать более advanced темы, типа алгоритмических паттернов, скользящее окно например. Это было бы полезней при решении задач
@ElbrusBootcamp
@ElbrusBootcamp 19 күн бұрын
Тоже полезно, да
@kitN
@kitN 26 күн бұрын
Какая назуй сортивровка пузырьком? Тетя ты моросишь детский бред, займись делом
@panfilovandrey
@panfilovandrey 26 күн бұрын
Опять какие-то сомнительные подходы. Ну джун понятно все сделал в лоб, Я сразу подумал, что можно вытащить значения, причем вытаскивать индексы месяцев не имело смысла, можно было вытаскивать значения и по ним циклом простым идти. Переменной итоговой достаточно одной, просто делать +1 или -1 в зависимости от значения. Два фильтра - это два раза проход по массиву, зачем? Тут просто цикл гораздо проще. Решение сеньора сомнительное в плане дальнейшей поддержки, если как-то поменяется формат входных данных, придется что-то придумывать. Да и читабельность кода хреновая. Сеньор не показывает знания всех методов, а следит за качеством кода и целостностью системы.
@AdskiyVolk
@AdskiyVolk 26 күн бұрын
Знаю этого актера 😂 Друг, спасибо за контент)
@kirillsundaen8810
@kirillsundaen8810 28 күн бұрын
Анастасия - красавица! только right, не rigth )
28 күн бұрын
Благодарю!) да, я исправила эту опечатку в конце) спасибо
@newjerseyAVGN
@newjerseyAVGN 29 күн бұрын
Это всё херня, попробуйте написать полноценный шелл на 20 команд. Копирование, перемещение, удаление файлов и папок, спеки компа, спеки сети и прочая лабуда. Дерзайте!
@user-xn2cr5oe4p
@user-xn2cr5oe4p 29 күн бұрын
Что за устаревшие циклы фор? Вы из двухтысячных вылезли????
@user-cp4px6oz5n
@user-cp4px6oz5n 29 күн бұрын
а какой ты тут хочешь предложить использовать?)
@user-xn2cr5oe4p
@user-xn2cr5oe4p 28 күн бұрын
@@user-cp4px6oz5n современные es 6 методы
@vitaly-
@vitaly- 26 күн бұрын
соболезную, если ты используешь циклы только по принципу новизны, а не те, которые подходят под конкретную ситуацию.
@user-xn2cr5oe4p
@user-xn2cr5oe4p 26 күн бұрын
@@vitaly- а я соболезную тебе , что ты застрявший в прошлом человечек, не готовый принимать новые технологии. Ты ещё поворчи типа: «Вот молодеж нынче пошла»….
@vitaly-
@vitaly- 26 күн бұрын
@@user-xn2cr5oe4p хахахахаах, какие технологии? и как ты собрался писать условие выхода из цикла "len - 1 - i" не используя for или while? школу хоть закончил бы, прежде чем такой бред писать...
@user-sc3ht8ti4o
@user-sc3ht8ti4o 29 күн бұрын
Спасибо!
@user-pz9dc1kk4d
@user-pz9dc1kk4d Ай бұрын
Супердоступно и понятно, спасибо большое!
@mcltdtm420
@mcltdtm420 Ай бұрын
вариантов решений может быть много. только вот у меня вопрос относительно производительности каждого варианта. без тестов, на первый взгляд, решения "Джуна" самое быстрое. или я ошибаюсь?
@dadaVoloda
@dadaVoloda Ай бұрын
ошибаешься, у джуна O(n^2) сложность, у синьора O(n) вообще думаю большинство разработчиков решат эту задачу одинаково, без замыкания и в пару строк, потому что читабильность/понимание в приоритете let sum = 0 return arr.map(el => sum += el)
@mcltdtm420
@mcltdtm420 Ай бұрын
@@dadaVoloda а Вы производительность кода по читабильности кода определяете?
@dadaVoloda
@dadaVoloda Ай бұрын
@@mcltdtm420 а Вы меня троллите или серьезно спрашиваете? Первая часть сообщения про производительность, там имеется ввиду, что в примере с джуном цикл в цикле, получается квадратичная сложность, в случае с сеньором один проход по массиву - линейная сложность. А во второй части сообщения я уже высказал свое мнение, как по-моему напишет большинство на проекте, никто не будет использовать цикл фор, когда это можно сделать с помощью метода быстрее и удобнее
@mcltdtm420
@mcltdtm420 23 күн бұрын
@@dadaVoloda 1. где вы увидели "у джуна O(n^2)"? там менше итераций цикла. 2. почему вы считаете, что перебор по циклу и в методе масива занимают одинаковое количество времени?
@mcltdtm420
@mcltdtm420 23 күн бұрын
​@@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
@BLUEGLUETutorials Ай бұрын
А ты попросил написать "hello world"
@aksenovkirill5191
@aksenovkirill5191 Ай бұрын
Первую задачу, решая черех includes - это сразу O(n2) по времени Задачу надо решать через map = {}
@user-gz1wl2rp4v
@user-gz1wl2rp4v Ай бұрын
джуны не настолько тупые, чтобы в брутфорсить эту задачу...
@liltousin
@liltousin Ай бұрын
Сразу подумал решать через map, теперь я не джун без опыта а синьер без опыта😂
@Philormonia
@Philormonia Ай бұрын
Когда прописал команду pip install aiogram в терминал у меня скачался aiogram, но когда из его библиотеки импортировал бота и диспетчер, у меня выходила ошибка, что '('''Не удается разрешить импорт "aiogram"')''помогите исправить. Так было и с pytelegrambotapi не могу найти решение проблемы( , помогите пожалуйста