Тёмный

Алгоритмы на JavaScript. Решение задач с CodeWars. Практика 

Ulbi TV
Подписаться 309 тыс.
Просмотров 78 тыс.
50% 1

Алгоритмы Javascript. Практика алгоритмов на js. Решение задач на JS c CodeWars. Алгоритмы js. Алгоритмы на js.
Экспресс справочник с более 200 вопросов к собеседованию тут - boosty.to/ulbitv
Исходный код урока - github.com/uti...
Мой канал в telegram и канал для общения подписчиков - t.me/ulbi_tv
Поддержать меня и мой канал вы можете по ссылкам ниже.
Patreon/boosty (доступ к бонусам) - boosty.to/ulbitv
Qiwi кошелек - qiwi.com/n/BODY...
Яндекс деньги - yoomoney.ru/to...
Таймкоды:
00:40 - Числа Фибоначчи - РЕКУРСИЯ
02:40 - Числа Фибоначчи - Итеративный способ
04:26 - Палиндром
07:25 - Задача на понимание замыканий\колбеков
11:23 - Задача с концертами
15:00 - Периметр закрашенной области
19:42 - Задачи с числами и массивом
23:48 - Обход n-го дерево
27:00 - Время ставить лайки =)
#JavaScript #CodeWars #Алгоритмы

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 315   
@UlbiTV
@UlbiTV 3 года назад
Если будет хорошая активность, то сделаю видос с задачами посложнее :)
@vgamzatov
@vgamzatov 3 года назад
я мечтаю найти в сети большой практикум по функциональному программированию. Пока не нашёл. Нужны СОТНИ задач и примеров - тема специфическая и востребованная, но пока никем не покрыта
@NeoJohnSmit
@NeoJohnSmit 3 года назад
Лев
@Davidovich_aka_smoozydrinker
@Davidovich_aka_smoozydrinker 3 года назад
Тимур, будь добр, расскажи доступно про Symbol, пожалуйста, с примерами. Часто спрашивают на собесах, но в реальных задачах юзкейсов у меня, например, нет за много времени и трудно въехать, что это, как и для чего оно действительно надо, в каких кейсах. Спасибо!
@uNkind33
@uNkind33 3 года назад
батя как всегда радует, спасибо за видос, можешь готовить уже посложнее ))
@МаксимЧернов-э6я
@МаксимЧернов-э6я 3 года назад
Хотелось бы увидеть сложные алгоритмы по типу шашек или авто выстраивания пазла по алгоритму дэйкстры)
@itpro952
@itpro952 3 года назад
Тимур, я не знаю помнишь ты или нет, но я с тобой с 200-300 подписчиков, и хочу сказать, что качество контента заметно выросло, даже не в плане звука или видео, а в целом, раскрываемые темы, подача, обложки роликов, твой контент приятно смотреть, даже если тема, которую ты просвещаешь уже знакома, открывая каждый ролик я всегда знаю, что будет полезно. Думаю со мной многие согласятся, соотношение лайков/дизлайков на видео об этом говорит
@UlbiTV
@UlbiTV 3 года назад
Я всех «старичков» помню) тех, кто оставляет комментарии не так уж и много осталось :) спасибо! Стараюсь улучшать контент, рад, что замечаете)
@ЭзамАппаева
@ЭзамАппаева 3 года назад
Улыбка на лице возникает моментально , когда вы выкладываете новый видос!
@UlbiTV
@UlbiTV 3 года назад
А у меня улыбка от ваших комментариев ;)
@itpro952
@itpro952 3 года назад
О, долгожданный видос, лайк перед просмотром
@UlbiTV
@UlbiTV 3 года назад
Благодарочка ;)
@krylovDev
@krylovDev 3 года назад
Только сегодня задумался о CW, как там что и чего. Годный контент. Не глядя - жирный лайк !!!
@UlbiTV
@UlbiTV 3 года назад
Спасибо друг:)
@ЭзамАппаева
@ЭзамАппаева 3 года назад
Спасибо за все , что вы делаете для своих преданных зрителей !
@UlbiTV
@UlbiTV 3 года назад
Спасибо!)
@djailinvasu
@djailinvasu 3 года назад
Ааа! Как вовремя! Я ещё не начала смотреть, но уже лайк и благодарность. Как раз готовлюсь к собеседованию. Пересмотрела раза 4 ролик по алгоритмам и структурам данных.. расстраивалась, что нет ещё на тему побольше практических. А тут такой подкат. Класс
@UlbiTV
@UlbiTV 3 года назад
Спасибо! Успехов!)
@djailinvasu
@djailinvasu 3 года назад
@@UlbiTV Спасибо тебе. (Надеюсь, это не слишком фамильярно)) Ну что ж, не без твоей помощи в том числе, я прошла все собесы и получила работу. Обсуждается дата выхода. Тем временем, открываю папочку node js на твоём канале. Я давно не Джун, но есть темы, в которых плаваю. Ты делаешь классное дело. Особенно для тех, кто знает зачем и что ему нужно, и ищет способ быстро начать ориентироваться в теме, чтобы понимать куда и как копать дальше.
@UlbiTV
@UlbiTV 3 года назад
@@djailinvasu не представляешь, насколько я радуюсь, когда получаю подобные комментарии :) очень рад, успехов на новом месте работы!
@shustrik911
@shustrik911 3 года назад
Развернутое объяснение каждой задачи, интересно слушать , вникать. Будет здорово увидеть продолжение 🔥
@gagosimonyan1986
@gagosimonyan1986 3 года назад
Отличный формат) я только за ✊✊✊
@UlbiTV
@UlbiTV 3 года назад
Учту!)
@МаксимСімончук
@МаксимСімончук 3 года назад
Очень интересно, продолжай!
@Антон-к7е7м
@Антон-к7е7м 3 года назад
Всегда интересно посмотреть на решение задачи со стороны
@ИльяКвитковский-г9л
Спасибо, очень круто объясняешь, понял все сказанное. Ещё раз огромное спасибо, был бы рад подобным видео у тебя на канале
@UlbiTV
@UlbiTV 3 года назад
Спасибо друг:)
@redcade
@redcade 3 года назад
Держите итеративный метод для Фибоначи без хардкода на первые значения: function fibonachi (n) { let prev = 1 let res = 0 for (let i = 0; i < n; i++) { let r = prev + res prev = res res = r } return res }
@svgaryaev
@svgaryaev 3 года назад
Вот вроде говоришь о сложности алгоритмов и забываешь упомянуть, что у такого рекуррентного нахождения числа фибоначчи оно экспоненциальное и так писать опасно для здоровья
@UlbiTV
@UlbiTV 3 года назад
Согласен, стоило бы сказать
@yuryitikhonoff9631
@yuryitikhonoff9631 3 года назад
Огонь 🔥. Так держать.
@aarovas
@aarovas 3 года назад
Очень понравился, спасибо мужик!
@UlbiTV
@UlbiTV 3 года назад
Благодарю;)
@OnlyLuck1000
@OnlyLuck1000 3 года назад
++активность для задач посложнее)
@demimurych1
@demimurych1 2 года назад
07:25 *Задача на понимание замыканий\колбеков* Это классическая задача на понимание функциональной парадигмы программирования. А именно композиции функций. *Решение автора видео является примером того как делать нельзя* Тем более нельзя такой код приводить как пример для других. *Пример решения близкий к оптимальному* { // _Создаем абстракцию нечто, которая знает только о себе_ const thing = ( t ) => t; // _Создаем абстракцию Тип Нечто, которая определяет логику поведения если она задана, или возврашает абстракцию thing_ const typeThing = ( ( t ) => ( a = thing ) => a( t ) ); // _Определяем абстракции для примитивных значений от 0 до 9_ const [ zero, one, two, three, four, five, six, seven, eight, nine ] = ( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] .map( typeThing ) ); // _Определяем абстракцию для операции сложения_ const plus = ( ( p1 ) => ( p2 ) => p1 + p2 ); // _Определяем абстракцию для операции вычитания_ const minus = ( ( p1 ) => ( p2 ) => p1 - p2 ); // _Пример композиции абстракций_ 4 + ( 5 - ( 2 + ( 3 ) ) ) console.log( four( plus( five( minus( two( plus( three( ) ) ) ) ) ) ) ); } *Автору видео домашнее задание* Во первых, научиться постоянно себе задавать вопрос - а правильно ли я делаю. Во вторых модифицировать код что выше так, чтобы абстракции для plus minus, которые сейчас имеют свое уникальное определение, стали частью цепочки создания для абстракций работающих с примитивными значениями.
@leopold3146
@leopold3146 Год назад
Аудитория этого канала в подавляющем большинстве - только начинающие изучать программирование, им до таких высоких материй пока далеко
@demimurych1
@demimurych1 Год назад
@@leopold3146 Я абсолютно согласен с Вами в той части, где Вы ставите акцент на доступности материала для целевой группы. При этом, я хочу сделать важный акцент - я настаиваю на том, что в случае осваивания такой специальности как программирование, минимальный уровень (порог), который бы считался достаточным для программиста, был хотя-бы на том примитивном уровне, о котором заявляю я. Иначе говоря, я настаиваю на том, что преподавание материала уровнем ниже - это не только не достаточно для специальности, но и унижение человеческого достоинства. Такого мнения я придерживаюсь.
@leopold3146
@leopold3146 Год назад
@@demimurych1 Не утрируйте! Большая часть кодинга вовсе не требует таких сложных логических механизмов, и изучающим любой язык надо с чего-то начинать. По-хорошему, этот пример из-за своей сложности вообще не должен был присутствовать в первом видео из серии, но автора канала, претендующего на звание образовательного для начинающих, постоянно заносит в излишне густые дебри функционального программирования.
@helenit4365
@helenit4365 3 года назад
Хороший канал, очень помог мне! Лайк!
@UlbiTV
@UlbiTV 3 года назад
Спасибо!
@yaroslav8609
@yaroslav8609 3 года назад
офигеть совпадение, как раз на codewars решаю задачку 4kyu
@UlbiTV
@UlbiTV 3 года назад
успехов!
@Artem_Mehes
@Artem_Mehes 3 года назад
Задача с деревом через reduce и рекурсию) function treeSum(tree) { return tree.reduce((acc, node) => acc += node.c ? node.v + treeSum(node.c) : node.v, 0); }
@SerzhNesteruk
@SerzhNesteruk 6 месяцев назад
Решил почти аналогично)✌️ function treeSum(tree) { return tree.reduce((sum, { v, c }) => sum + v + (c ? treeSum(c) : 0), 0); }
@aleksandrzelenskiy4000
@aleksandrzelenskiy4000 3 года назад
Отличный формат! Сам дальше 7kui пока не могу пробить
@fuad2069
@fuad2069 3 года назад
Благодарю!
@tentacle8148
@tentacle8148 3 года назад
Интересно было бы помотреть на 1-3 kata
@vp9878
@vp9878 3 года назад
Отличное видео. Еженедельную рубрику давай, с задачками с CodeWars. Уверен, что плейлист будет популярен для джунов(вроде меня) да и просто любителей задачек. И вопрос по задачке, почему в 6-й не пройтись по ключам обьекта, ведь значений там будет меньше чем в проверяемом массиве?
@viktoriaviktoria3178
@viktoriaviktoria3178 3 года назад
Супер!
@tazer8635
@tazer8635 3 года назад
Топово
@ИванИванов-у3ч4м
@ИванИванов-у3ч4м 3 года назад
Клонировать этого парня, срочно....
@helenit4365
@helenit4365 3 года назад
😁🤣
@UlbiTV
@UlbiTV 3 года назад
😂😂
@barbatage5078
@barbatage5078 3 года назад
😂😂😂
@ЕгорЕгорович-д2т
@ЕгорЕгорович-д2т 8 месяцев назад
😁😅
@EvilYou
@EvilYou 3 года назад
С периметром задача интересная, пришлось даже минут 40 потратить, часть из которых думал, как вообще посчитать этот периметр, даже на листке нарисовал разные варианты :) В решении сделал нормальную матрицу, заменив буквы O на нули для того, чтобы Boolean(0) возвращал false. function perimeter(matrix) { const grid = []; for (let i = 0; i < matrix.length; i++) { let current = []; for (let symbol of matrix[i]) { current.push( symbol === 'O' ? 0 : symbol ); } grid.push(current); } const rows = grid.length; const cols = grid[0].length; let result = 0; function getPartialPerimeter(r, c, result) { if (grid[r][c] === 1) return 0; grid[r][c] = 1; result += grid[r - 1]?.[c] ? getPartialPerimeter(r - 1, c, 0) : 1; result += grid[r + 1]?.[c] ? getPartialPerimeter(r + 1, c, 0) : 1; result += grid[r][c - 1] ? getPartialPerimeter(r, c - 1, 0) : 1; result += grid[r][c + 1] ? getPartialPerimeter(r, c + 1, 0) : 1; return result; } for (let r = 0; r < rows; r++) { for (let c = 0; c < cols; c++) { if (grid[r][c] === 'X') { result += getPartialPerimeter(r, c, 0); } } } return result; } P.S. Нашел эту задачу на codewars (Land perimeter), но для нее решение пришлось чуть переделать, так как codewars не воспринимает опциональную цепочку ?. Поменял эти 3 строчки и название функции. result += grid[r - 1] && grid[r - 1][c] ? getPartialPerimeter(r - 1, c, 0) : 1; result += grid[r + 1] && grid[r + 1][c] ? getPartialPerimeter(r + 1, c, 0) : 1; return "Total land perimeter: " + result; // по условию надо возвращать строку
@juliapanova1288
@juliapanova1288 3 года назад
Спасибо большое! Очень интересно 😌
@russian2475
@russian2475 3 года назад
Красавец!
@Almas-2002
@Almas-2002 3 года назад
Если зависит только от Алмаса , Алмас разрешает продолжать)
@UlbiTV
@UlbiTV 3 года назад
👍👍😂😂
@AndrejVivat
@AndrejVivat 3 года назад
function fib(n) { if (n < 1) { return 0 } if (n
@anton-vr5xw
@anton-vr5xw 3 года назад
шикарный формат, можно ещё?)))
@oleksandrlesiuk6239
@oleksandrlesiuk6239 3 года назад
Спасибо, очень полезно
@Иван-ъ5г2ц
@Иван-ъ5г2ц 3 года назад
Сделай видео про jwt token и когда вызывать функцию refresh в React , а то в интернете ничего годного нет) Нравиться что делаешь, красавчик)
@ВасяПупкин-н9д9с
@ВасяПупкин-н9д9с 3 года назад
Хоть 1 задача про Фибоначчи типо простая, но если заранее не знать алгоритм действий фиг допрешь до такой рекурсии
@Unnamed-r8x
@Unnamed-r8x 3 года назад
Формат отличный!
@vitalii5784
@vitalii5784 3 года назад
Формат видео офигенный! Продолжай подобное пилить) P.S.: Было бы интересно услышать разбор и реализацию алгоритма Дейкстры, а также второго алгоритма для отрицательных плеч.
@АнтонБудюкин-н2ь
@АнтонБудюкин-н2ь 2 года назад
Предельно полезное видео, из одной только задачи про замыкания узнал уйму полезной инфы, спасибо!!!
@TheGenom888
@TheGenom888 2 года назад
Спасибо дружище! Хороший ролик, что бы понимать как решать задачи на codewаrs!!! Успехов!!!
@MrAndriiT
@MrAndriiT 2 года назад
Спасибо за видео и проделанную работу! Побольше таких видео с задачками делай, они полезны каждому программисту, как новичку так и нет для практики я считаю.
@liczyrzepa
@liczyrzepa 3 года назад
function Palindrome(str) { return str === str.split('').reverse().join(''); }
@AndrejVivat
@AndrejVivat 3 года назад
function norepeat(data) { const arr = data.sort() const result = [] for (let i = 0; i < arr.length; i++) { if (arr[i] != arr[i+1]) { result.push(arr[i]) } while (arr[i] == arr[i+1]) { arr.splice(i,1) } } return result }
@ВиталийАбраменко-ф3н
С колбэками нужно посидеть подразобраться.
@AndriiKrymskyi
@AndriiKrymskyi 3 года назад
Спасибо огромное за видео. Ты очень помогаешь.
@demimurych1
@demimurych1 2 года назад
6:18 *Палнидром* Эх троечники и чему Вас только в институтах учат? Ваше решение не является самым оптимизированным, а является примером того что бывает когда мышление в плоскости алгоритмизации процессов еще совсем не развито. строка - она для Вас строка. Это вы о ней думаете как о строке с буковками. А для машины строка - это банальное число. где то что вы называете символом, является для машины каким то числовым кодом. То есть строка для машины это какое то число, большое целое число. Эта задача решается в три строки, где две строки это получение двух чисел и третья их сравнение. Подсказка - биг инт.
@SerzhNesteruk
@SerzhNesteruk 6 месяцев назад
Идея интересная, но без конкретной реализации она, к сожалению, ни чем не обоснована, крайне туманна и совершенно неоднозначна по функциональности и перформансу. То, что строки хранятся в числовых значениях ещё не означает, что использование "напрямую" чисел будет гораздо эффективнее для решения конкретной задачи. Само преобразование строк в BigInt может вполне ощутимо отразиться на производительности. 🤔
@oleksandr___m
@oleksandr___m 10 месяцев назад
Супер, дякую, благодарю ♥️
@d33pFaiL
@d33pFaiL 3 года назад
делай
@jsmonstr9638
@jsmonstr9638 3 года назад
Контент топ!
@evgeniychip
@evgeniychip 3 года назад
найс
@tilekmoldaliev7803
@tilekmoldaliev7803 3 года назад
наконец то годные видео 👍👍👍
@sergeymalcev4948
@sergeymalcev4948 Год назад
Класс! понравились задачи с замыканием и матрицей. Аффтар давай есчо! 8)
@ihorkondratov2189
@ihorkondratov2189 3 года назад
А такую задачку abc>[[abc],[ab.c],[a.bc],[a.b.c]]
@darveterdarveter4511
@darveterdarveter4511 7 месяцев назад
11:02 третья задача Когда мы вызываем one(plus(three())), происходит следующее: 1. three() возвращает 3. 2. Затем plus вызывается с аргументом 3, что приводит к возврату стрелочной функции (b) => 3 + b. 3. Теперь функция one вызывается с этой стрелочной функцией в качестве аргумента callback. 4. Внутри функции one, callback(1) вызывает созданную внутри plus стрелочную функцию с аргументом 1. 5. Таким образом, a в этой стрелочной функции равно 3, а значение 1 передается как b. 6. В результате выполнения 3 + 1 получаем 4.
@nashuarash
@nashuarash 3 года назад
для 6_without_repeat есть вариант попроще (проходил собес, но решение пришло в голову только после...) arr.reduce((acc, rec) => acc.includes(rec) ? acc.filter(it => it !== rec) : [...acc, rec], [])
@SerzhNesteruk
@SerzhNesteruk 6 месяцев назад
Решение любопытное, но не совсем корректное. Та ещё и квадратичная временная сложность. 🤔 Input: [0, 1, 1, 1, NaN, 5, NaN] Expected: [0, 5] Output: ❌️ [0, 1, NaN, 5] Input: Array.from({length: 1e+6}, (_, i) => i) Output: ⏳️ Time limit exceeded
@nashuarash
@nashuarash 6 месяцев назад
@@SerzhNesteruk согласен, вложенные переборы лучше не делать, конечно )
@a-sher
@a-sher 3 года назад
больше задачек на алгоритмы! ))
@MarufSheraliyev
@MarufSheraliyev Год назад
Привет Тимур, что ты думаешь об этом решении? function fibonacci(number) { if (number
@user-lex1308
@user-lex1308 2 года назад
Интересно!
@turtrueweb
@turtrueweb 3 года назад
+
@СергейВасильев-о2и8м
www.codewars.com/kata/5fa50a5def5ecf0014debd73 Запили пожалуйста эту задачу) Два часа на нее сегодня потратил) так и не решил(
@UlbiTV
@UlbiTV 3 года назад
Гляну
@vasiliizolotukhin4452
@vasiliizolotukhin4452 7 дней назад
А разве в функции linearWithoutRepeat (на 21:40) сложность не O(2N)? Ты же там 2 раза проходишься по массиву, а не один раз
@AntonioBenderas
@AntonioBenderas 2 года назад
Активность проявлена
@Life-yj1dq
@Life-yj1dq 2 года назад
Продолжай
@МаринаПос-ф4щ
@МаринаПос-ф4щ 2 года назад
спасибо, ты молодец!
@devline9218
@devline9218 3 года назад
--- linearWithRepeat function linearWithRepeat(arr) { const obj = arr .reduce((accObj, num) => { accObj[num] ? accObj[num] += 1 : accObj[num] = 1; return accObj; }, {}); return Object.entries(obj) .filter(([_, valMatches]) => valMatches === 1) .map(([keyNum]) => Number(keyNum)); } --- treeSum случай, если мы не знаем названия ключей let sum = 0 function treeSum(tree) { tree.forEach(obj => { Object.entries(obj) .forEach(([_, val]) => { if (Array.isArray(val)) { return treeSum(val) } sum += val }) }) return sum }
@АндрейВерхулин
@АндрейВерхулин 3 года назад
Просто озадачен, какой же я тупой оказывается.
@ohhh-damn-brooo
@ohhh-damn-brooo Год назад
пришло время качать свою логику
@ВиталийМирошниченко-с9я
вообще не пойму решение matrix (массива) при изменении элементов массива некоторые Х уменьшают периметр на 4, неоторые на 2, некоторые Х при удалении совсем не меняют площадь периметра выведенную в (лог), при всеч заданных параметрах тоже изначально получил число 24
@ЕгорЕгорович-д2т
@ЕгорЕгорович-д2т 8 месяцев назад
Comment and repost 🎉
@propro3053
@propro3053 Год назад
Четко
@alexbaboy7292
@alexbaboy7292 2 года назад
В задаче с периметром только 9 символов X, как получается периметр равным 24?
@СергійТочинський-ш3с
Удаление дубликатов (6 задача) const noRepeat = (arr) => arr.filter(num => arr.indexOf(num) === arr.lastIndexOf(num))
@UlbiTV
@UlbiTV 2 года назад
Какая сложность у такого способа?
@СергійТочинський-ш3с
@@UlbiTV O(n), просто более лаконичная запись)
@UlbiTV
@UlbiTV 2 года назад
@@СергійТочинський-ш3с точно o(n)?)
@СергійТочинський-ш3с
@@UlbiTV поправьте, если ошибаюсь)
@UlbiTV
@UlbiTV 2 года назад
@@СергійТочинський-ш3с o(n^2), индекс оф такой же обход массива
@ВиталийМирошниченко-с9я
Я никак не пойму почему периметр закрфшенных=24 ; периметр =(длина(1)+ширина(1)) =2*9=18, в чем я не прав????
@voroninanton8059
@voroninanton8059 Год назад
мне одному показалось решение с периметром несколько сложным для понимания? У меня другое более "простое" (ИМХО конечно) решение - посчитать количество Х-ов и вычесть смежные ребра: function perimeter(matrix) { let xCount = 0; let commonEdges = 0; matrix.forEach((line, index) => { for (let i = 0; i < line.length; i++) { if (line[i] === 'X') { xCount++; if (line[i + 1] === 'X') commonEdges++; if (index < matrix.length - 1 && matrix[index + 1][i] === 'X') commonEdges++; } } }); return xCount * 4 - 2 * commonEdges; }
@SerzhNesteruk
@SerzhNesteruk 6 месяцев назад
Спасибо, что поделились решением! 👍 У меня получилось практически аналогичное. Правда, я использовал reduce вместо forEach. Делал проверку слева и сверху от закрашенных ячеек, а не снизу и справа. Избежал лишней вложенности через continue. Не добавлял 4 (инкрементом xCount) и отнимал по 2 (инкрементом commonEdges), а просто добавлял по 2 сразу в count, что может быть не так наглядно, но математически эквивалентно. function perimeter(grid) { const FILL = 'X'; return grid.reduce((count, line, row) => { for (let i = 0; i < line.length; i++) { if (line[i] !== FILL) continue; if (line[i - 1] !== FILL) count += 2; if (grid[row - 1]?.[i] !== FILL) count += 2; } return count; }, 0); }
@اعزم
@اعزم 7 дней назад
Ничего не понял
@rukioruk6949
@rukioruk6949 10 месяцев назад
Четвертая задача "одной строкой" с новыми датами (пока не смотрел решение на видосе): const concerts = { 'Москва': new Date('2023-04-01'), 'Казань': new Date('2024-12-01'), 'Владивосток': new Date('2023-04-04'), 'Калининград': new Date('2024-12-08'), 'Омск': new Date('2023-04-15'), 'Питер': new Date('2024-12-20'), } console.log( Object.values(concerts) .filter((d) => d > new Date()) .sort((x1, x2) => x1 - x2) .reduce((acc, curr) => [...acc, Object.keys(concerts).find((key) => concerts[key] === curr)], []) ) // Результат: ['Казань', 'Калининград', 'Питер']
@rukioruk6949
@rukioruk6949 10 месяцев назад
Посмотрел решение на видосе. Я идиот. )))
@ВиталийМирошниченко-с9я
добавлю, что если массив matrix полностью закрасить т.е. все Х сделать то в логе выводится число 20(значит периметр я плохо усвоил))))))))))))))) // const matrix = [ // 'XOOXO', // 'XOOXO', // 'OOOXO', // 'XXOXO', // 'OXOOO', // ] // function searchMatrix(matrix) { // let p = 0; // for (let i = 0; i < matrix.length; i++) { // for (let j = 0; j < matrix[i].length; j++) { // if (matrix[i][j] === 'X') { // p += j === 0 || matrix[i][j - 1] === 'O' // p += i === 0 || matrix[i - 1][j] === 'O' // p += i === matrix.length - 1 || matrix[i + 1][j] === 'O' // p += j === matrix[i].length - 1 || matrix[i][j + 1] === 'O' // } // } // } // return p // } // console.log(searchMatrix(matrix));
@dsogs9961
@dsogs9961 3 года назад
обидно, что многие пишут какие же легкие задачи были, а ты даже функцию фибоначи не можешь написать..
@UlbiTV
@UlbiTV 3 года назад
Главное не обращать внимания на такие комментарии, у всех разный опыт:) успехов!
@dsogs9961
@dsogs9961 3 года назад
@@UlbiTV те же фулстек интернет магазин или пеинт легче были, чем эти алгоритмы, спасибо за ваш труд)
@ДимаГоликов-с6ш
@ДимаГоликов-с6ш 2 месяца назад
Спасибо!
@hutoryanin
@hutoryanin 3 года назад
Я так понял шестую задачку ты решал с девушкой на собесе?
@UlbiTV
@UlbiTV 3 года назад
Да, просто это видео я записал раньше, чем собес ;)
@СергейВасильев-о2и8м
было бы не плохо если бы ты говорил перед началом задачи какого ранга(kyu) данная задача
@UlbiTV
@UlbiTV 3 года назад
6-8 если не ошибаюсь, легкие задачки
@ПавелЮлианов
@ПавелЮлианов 3 года назад
@@UlbiTV Го сложнее. Слишком простые задачки.
@tentacle8148
@tentacle8148 3 года назад
@@ПавелЮлианов согласен
@nashuarash
@nashuarash 3 года назад
Я не успеваю... Всё нужно: и задачки на алгоритмы, тайпскрипт, вебсокеты, нейтив хочу попробовать, qraphQL, styled components... Как всё успеть? давит прям (((
@РафаэльБ-ш4в
@РафаэльБ-ш4в 3 года назад
омайгад, мозг чуть не лопнул, но это считаются легкие задачи!? я вообще кран походу!
@javascript.frontend
@javascript.frontend Год назад
наверно это от стронг джунов бэкенда
@КириллМаланьин-ф3ь
Круто
@bogdanshelomanov5668
@bogdanshelomanov5668 Год назад
максимально убогое решение, простейшая рекурсивная функция, а почему там именно такой результат , а не другой, почему нет обьяснения, как именно она отработала, заранее заготовленный тупой шаблон любой показать может
@xor_01
@xor_01 3 года назад
Сейчас бы Фибоначчи решать рекурсивно за 2^n, когда итеративный подход требует O(n)
@cseedrvr6627
@cseedrvr6627 3 года назад
А задача с периметром это какой kyu на codewars?
@konstantinpomazan5410
@konstantinpomazan5410 3 года назад
это лайк!
@baktiyar6469
@baktiyar6469 3 года назад
го след часть
@violentiner
@violentiner 3 года назад
Electron планируеш показать?)
@UlbiTV
@UlbiTV 3 года назад
Да, но не в ближайшее время
@UlbiTV
@UlbiTV 3 года назад
Че то откладываю его вечно
@falsetrue7910
@falsetrue7910 3 года назад
Это то видео, которое ты обещал на собеседовании последнем?
@UlbiTV
@UlbiTV 3 года назад
Его часть) если понравится, будет продолжение
@bekzatashken6267
@bekzatashken6267 3 года назад
Хочу продолжение
@ОктаэдрВысокихВероятностей
Твоя версия рекурсии фибоначчи имеет прям очень плохую производительность
@killbeat4488
@killbeat4488 3 года назад
Отличный контент! Ребята, может подкинете какие то плюс минус не тривиальные идеи для пет проекта на стронг джуна? задумываюсь о смене работы, а гитхаб покаместь пустой
@sovaz1997
@sovaz1997 3 года назад
Сделай приложение для финансов. Только не стандартное, а с планированием расходов/доходов: есть разные типы расходов (месячные/недельные/ежедневные/разовые/периодические), есть разные типы доходов (ЗП/разовый/фиксированный за период). Есть текущее состояние счета. И все это вместе считается за период для каждого дня. Если где-то ниже 0 остаётся по деньгам, приложение должно об этом говорить. У меня просто давно возникла такая идея, просто у меня другой основной пет-проект и я не готов писать ещё один. Если будет интересно, скинь ссылку на gh - может, буду пользоваться, если реализуешь)
@killbeat4488
@killbeat4488 3 года назад
@@sovaz1997 Спасибо за идею! буду приступать. Под лежачий камень вода не идет)
@sovaz1997
@sovaz1997 3 года назад
@@killbeat4488 :) Главное, чтобы нравилось ;)
@konstantinkuksov914
@konstantinkuksov914 3 года назад
Тимур, пора тебе понять, что твоим подписчикам любой формат заходит! ))) Лайк - это просто дефолтное поведение после выхода ролика)) Лично для себя жду следующие темы: - Подготовка к бэкэнд-собеседованию, по аналогии с уже имеющимся видео про фронт; - Двухфакторная авторизация с подтверждением по почте/телефону; - Аутентификация с помощью сторонних апи, типа гугла или фейсбука; - Оплата на сайте. И отдельная просьба как от жителя Украины: если что-то из этого будешь делать, то не используй, пожалуйста, Яндекс и Мэйл, у нас они под санкциями.
@UlbiTV
@UlbiTV 3 года назад
Ой спасибо дружище) рад слышать) про авторизацию готовлю видео) с платежкой тоже будет, но попозже)
@noeasy2198
@noeasy2198 3 года назад
вот это реально очень надо ))
@armanshakaryan7171
@armanshakaryan7171 3 года назад
👍🏻👍🏻💪🏻
@sansoyzov5045
@sansoyzov5045 3 года назад
Интересно
@alexpermenev
@alexpermenev 3 года назад
Задачу Фибоначчи, в зависимости от ограничений, необходимо было решать с использованием мемоизации. Иначе, ваше рекурсивное решение сказало бы "пока" при N == 30+.
@olehzahrebelnyi5996
@olehzahrebelnyi5996 3 года назад
Like! Больше инфы о алгоритмах и расчета их сложности пожалуйста)
@UlbiTV
@UlbiTV 3 года назад
Спасибо!
Далее
С какого года вы со мной?
00:13
Просмотров 191 тыс.
Мой протез взломали хакеры
11:36