Alexandr Kazakov
Alexandr Kazakov
  • Видео 97
  • Просмотров 12 750

Видео

Холодные криптокошельки безопасны ли они. Как устроены Phantom, TrustWallet, Ledger
Просмотров 1017 месяцев назад
Я как блокчейн разработчик, ,больше двух лет опыта работы с блокчейн Solana, рассказываю о так называемых "холодных" криптокошельках. Мой Solana Raydium торговый бот на Typescript: github.com/alexandr-kazakov/solana-crendel-bot Платные консультации по блокчейну Solana: alexandr.kazakov1@gmail.com Таймкоды: 00:30 Обо мне 05:08 Как работают кошельки в Solana 15:42 Пример безопасного Solana кошель...
Задача с собеседования PromiseAll на нативном JavaScript
Просмотров 2507 месяцев назад
Задача с собеседования PromiseAll на нативном JavaScript
Собеседование в Яндекс Фронтенд 2024
Просмотров 7 тыс.7 месяцев назад
Первый этап в Яндекс на должность Разработчика Интерфейсов(фронтенд), 2024 год. Этап посвящен знанию языка, в моем случае это JavaScript. Таймкоды: 00:00 Первая задача 15:10 Вторая задача 32:57 Третья задача 44:26 Четвертая задача
[RU] LeetCode 67 Add Binary [JavaScript]
Просмотров 628 месяцев назад
[RU] LeetCode 67 Add Binary [JavaScript]
[RU] LeetCode 2351 First Letter to Appear Twice [JavaScript]
Просмотров 238 месяцев назад
[RU] LeetCode 2351 First Letter to Appear Twice [JavaScript]
Самая популярная задача на собеседованиях для frontend разработчика
Просмотров 2339 месяцев назад
Самая популярная задача на собеседованиях для frontend разработчика
[RU] LeetCode 476 Number Complement [JavaScript]
Просмотров 309 месяцев назад
[RU] LeetCode 476 Number Complement [JavaScript]
[EN] LeetCode 476 Number Complement [JavaScript]
Просмотров 139 месяцев назад
[EN] LeetCode 476 Number Complement [JavaScript]
[RU] LeetCode 36 Valid Sudoku [JavaScript]
Просмотров 319 месяцев назад
[RU] LeetCode 36 Valid Sudoku [JavaScript]
[RU] LeetCode 57 Insert Interval [JavaScript]
Просмотров 129 месяцев назад
[RU] LeetCode 57 Insert Interval [JavaScript]
[RU] LeetCode 442 Find All Duplicates in an Array [JavaScript]
Просмотров 209 месяцев назад
[RU] LeetCode 442 Find All Duplicates in an Array [JavaScript]
[EN] LeetCode 209 Minimum Size Subarray Sum [JavaScript]
Просмотров 2410 месяцев назад
[EN] LeetCode 209 Minimum Size Subarray Sum [JavaScript]
[RU] LeetCode 209 Minimum Size Subarray Sum [JavaScript]
Просмотров 4710 месяцев назад
[RU] LeetCode 209 Minimum Size Subarray Sum [JavaScript]
[EN] LeetCode 169 Majority Element [JavaScript]
Просмотров 810 месяцев назад
[EN] LeetCode 169 Majority Element [JavaScript]
[RU] LeetCode 169 Majority Element [JavaScript]
Просмотров 1610 месяцев назад
[RU] LeetCode 169 Majority Element [JavaScript]
[EN] LeetCode 189 Rotate Array [JavaScript]
Просмотров 1810 месяцев назад
[EN] LeetCode 189 Rotate Array [JavaScript]
[RU] LeetCode 189 Rotate Array [JavaScript]
Просмотров 3510 месяцев назад
[RU] LeetCode 189 Rotate Array [JavaScript]
LeetCode как решать задачи программисту-самоучке { LeetCode How to RU }
Просмотров 49011 месяцев назад
LeetCode как решать задачи программисту-самоучке { LeetCode How to RU }
LeetCode 200 задач Промежуточные итоги
Просмотров 7011 месяцев назад
LeetCode 200 задач Промежуточные итоги
[RU] LeetCode 49 Group Anagrams [JavaScript]
Просмотров 3811 месяцев назад
[RU] LeetCode 49 Group Anagrams [JavaScript]
[RU] LeetCode 54 Spiral Matrix [JavaScript]
Просмотров 1011 месяцев назад
[RU] LeetCode 54 Spiral Matrix [JavaScript]
[RU] LeetCode 48 Rotate Image [JavaScript]
Просмотров 1411 месяцев назад
[RU] LeetCode 48 Rotate Image [JavaScript]
[RU] LeetCode 733 Flood Fill [JavaScript]
Просмотров 2011 месяцев назад
[RU] LeetCode 733 Flood Fill [JavaScript]
[RU] LeetCode 566 Reshape the Matrix [JavaScript]
Просмотров 2111 месяцев назад
[RU] LeetCode 566 Reshape the Matrix [JavaScript]
[RU] LeetCode 1380 Lucky Numbers in a Matrix [JavaScript]
Просмотров 1711 месяцев назад
[RU] LeetCode 1380 Lucky Numbers in a Matrix [JavaScript]
LeetCode 1351 Count Negative Numbers in a Sorted Matrix
Просмотров 1711 месяцев назад
LeetCode 1351 Count Negative Numbers in a Sorted Matrix
[RU] LeetCode 1572 Matrix Diagonal Sum [JavaScript]
Просмотров 2111 месяцев назад
[RU] LeetCode 1572 Matrix Diagonal Sum [JavaScript]
[RU] LeetCode 2824 Count Pairs Whose Sum is Less than Target [JavaScript]
Просмотров 7611 месяцев назад
[RU] LeetCode 2824 Count Pairs Whose Sum is Less than Target [JavaScript]
[RU] LeetCode 100 Same Tree [JavaScript]
Просмотров 29Год назад
[RU] LeetCode 100 Same Tree [JavaScript]

Комментарии

  • @ko22012
    @ko22012 4 дня назад

    Я так понимаю это первый этап. А их еще два, они посложнее этих будут.

    • @alexandrkazakov723
      @alexandrkazakov723 4 дня назад

      на втором этапе были два алгоритмические задачи.

  • @vsekromeetogoyzhezat
    @vsekromeetogoyzhezat 21 день назад

    1 задача const get = (obj, path) => path.split('.').reduce((acc, key) => acc?.[key], obj) 4 задача, 1 проход, можно в 1 строку function isMonotonic(arr) { const sign = Math.sign(arr[1] - arr[0]) return arr.every((v, i, arr) => i === 0 || sign === Math.sign(v - arr[i - 1])) }

  • @SumanGhosh-r4d
    @SumanGhosh-r4d 29 дней назад

    english please

  • @DmitryFL
    @DmitryFL Месяц назад

    жаль кто идет в яндекс - эта самая позорная орга в рф, хуже чем вк.

  • @AnotherSapiens
    @AnotherSapiens Месяц назад

    Вторую задачу можно просто решить с помощью стека и на каждом изменении считать размер стека и отчищать его, если в условии не указано, что мы мутируем исходный массив, то тогда просто достаточно использовать указатели

  • @AnotherSapiens
    @AnotherSapiens Месяц назад

    Первую задачу можно решить без рекурсии, если помнить, что мы можем сохранить ссылки на объекты, тогда будет сложность равная пути

  • @AnotherSapiens
    @AnotherSapiens Месяц назад

    isMonotonic можно было решить за один цикл, у нас не могут идти функция сразу и вверх и вниз, поэтому ставим изначально обоим флаг на тру и после первой проверки изменяем и на каждой итерации проверяем если происходит, что и там и там false значит уже не монотонна

  • @AnotherSapiens
    @AnotherSapiens Месяц назад

    О у меня были 2 задачи из твоих кейсов)

    • @pkrpkr-v4q
      @pkrpkr-v4q Месяц назад

      Поделись другими задачами плиз

  • @dolod777
    @dolod777 Месяц назад

    Как же меня вымораживает необходимость заниматься этой клоунадой при наличии ide и чатжпт

    • @aceracer5556
      @aceracer5556 Месяц назад

      Верной дорогой идете товарищь ) Чем больше таких разрабов, тем нам проще ))

    • @dolod777
      @dolod777 13 дней назад

      @@aceracer5556 сиди алгосы дрюкай братан. Твой уровень

  • @Samirsagaev
    @Samirsagaev Месяц назад

    Здравствуйте! Вы на мидла собеседовались? Если да, могу с вами где-нибудь списаться? У меня через неделю собес с ними🙏

    • @alexandrkazakov723
      @alexandrkazakov723 Месяц назад

      Привет, на собесах пока мне ни разу еще не говорили, на какой уровень я собеседуюсь, и так везде. Здесь же я ожидал, что это мидл/сеньер. Нужно учитывать, что это лишь один из этапов. Насчет списаться, посмотрите пожалуйста мой ТГ канал в описании канала, можете там свободно написать.

  • @vladislavmulyar6774
    @vladislavmulyar6774 2 месяца назад

    Есть прикольный вариант сделать это через substring без использования массивов (можно убрать доп переменные и будет решение в 4 строчки, но я за читаемость) function get(obj, path) { const firstKeyIndex = path.indexOf('.'); if (firstKeyIndex === -1) { return obj[path]; // Если индекс -1, то весь путь и есть ключ объекта } const firstKey = path.substring(0, firstKeyIndex); const pathWithoutFirstKey = path.substring(firstKeyIndex + 1); return get(obj[firstKey], pathWithoutFirstKey); }

  • @ДанилФилатов-х7х
    @ДанилФилатов-х7х 3 месяца назад

    Как ты получаешь доступ к .val и остальным полям узла если на вход передаётся массив цифр а не объектов? Описание типа в задаче очень путает

    • @alexandrkazakov723
      @alexandrkazakov723 3 месяца назад

      Да, это хороший вопрос. Судя по тому, что показывается на литкоде, кажется что input это массив с числами, но по факту это не так. Каждый узел бинарного дерева представляет из себя в JS объект, у которого есть свойства: left, right, val. Именно к свойствам объекта я и обращаюсь через точку, например node.val, node.left, node.right.

    • @ДанилФилатов-х7х
      @ДанилФилатов-х7х 3 месяца назад

      @@alexandrkazakov723 Правда, причём даже если распечатать что приходит на вход или каждый отдельный узел - в консоли будет массив чисел

  • @blessedpigeon6304
    @blessedpigeon6304 4 месяца назад

    46:55 ваще не понял как сортировкой можно тут что-то решить. Сортировка перетрёт порядок цифр и по-умолчанию сделает массив монотонным, поэтому вообще не понимаю, в чем идея. Я думаю что интервьюер тоже не поняла ничего

    • @ivanbursky
      @ivanbursky 4 месяца назад

      скорее всего идея была сортировать два раза - по возрастанию и по убыванию. А затем привести к строкам исходный массив и два сортированных. Если хотя бы в одном случае строки совпадут, то значит исходный массив монотонный.

    • @blessedpigeon6304
      @blessedpigeon6304 4 месяца назад

      @@ivanburskyтогда проще один раз отсортировать и пройтись сначала по убыванию, потом по возрастанию, две сортировки тут не нужны ну и приведение к строкам тоже Ну и просто по памяти и сложности конечно проигрывающий вариант Таким вариком можно хорошо зарекомендовать себя как любителя оверинжениринга)

  • @Userffffff
    @Userffffff 4 месяца назад

    Собеседуемый, молодец, так надо уметь разговор поддерживать. 1. Задача, можно рекурсией можно в цикле for разбиваем путь через split('.'), получаем ключ и остаток пути, и передаем их дальше вызывая эту же функцию и делаем два выхода один когда у нас путь закончится, будет длиной 0, второй когда obj будет undefined возвращаем undefined. function get(obj, path) { if (path.length === 0) { return obj } if (obj === undefined) { return undefined } const [key, ...rest] = path.split('.'); return get(obj[key], rest.join('.')) } на цикл function get(obj, path) { let result = { ...obj }; const paths = path.split('.') for (const key of paths) { result = result[key] if (result === undefined) { return undefined } } return result; } 2. через массив чтобы таких условий не делать, хотя все равно не идеально :( function rle(str) { const result = []; let pointer = str[0]; for (let i = 1; i < str.length; i++) { if (pointer[0] === str[i]) { pointer += str[i] } else { result.push(pointer) pointer = str[i] } } result.push(pointer); return result.map(letter => letter.length === 1 ? letter : `${letter[0]}${letter.length}`) .join('') }

  • @dididie158
    @dididie158 4 месяца назад

    Спасибо за видео. Недавно тоже первый этап проходил, все задач разные, но у нас с тобой схожи с retryFetch)

    • @alexandrkazakov723
      @alexandrkazakov723 4 месяца назад

      @@dididie158 а какие у тебя задачи были?

  • @artyomkrasavin1245
    @artyomkrasavin1245 4 месяца назад

    а какой результат? позвали на второй этап?

    • @alexandrkazakov723
      @alexandrkazakov723 4 месяца назад

      да, позвали на второй этап, там было только две задачки, уже алгоритмические, я их также решил

  • @tovarishdobegls6465
    @tovarishdobegls6465 4 месяца назад

    Устроился в итоге в компанию? Надеюсь, что да

  • @ВиталийКимович-е6ф
    @ВиталийКимович-е6ф 5 месяцев назад

    Добрый день, в обозримом будущем хотелось бы попасть на стажировку в яндекс, может быть уважаемые господа дадите совет или направление, на что сделать упор в задачах и какого уровня примерно спрашивают задачи на позицию стажера. Пока решаю codewar, задачи 6k даются сложно.

    • @alexandrkazakov723
      @alexandrkazakov723 5 месяцев назад

      Leetcode популярен, вот план обучения: leetcode.com/explore/featured/card/the-leetcode-beginners-guide/679/sql-syntax/4358/

    • @AnotherSapiens
      @AnotherSapiens Месяц назад

      Сначала пройди курс по алгоритмам, начни с простых сортировок и алгоритмов, потом на литкоде по тихоньку, если не получилось решить самому смотри эталонные решения или ChatGpt используй и попробуй визуализировать логику в схемах на бумаге... Мне это помогло

  • @whitespace2925
    @whitespace2925 5 месяцев назад

    Это на какой уровень, джуниор или мидл?

    • @alexandrkazakov723
      @alexandrkazakov723 5 месяцев назад

      Об этом тебе никто прямо не скажет. Могу только сказать, что на видео один из этапов с лайвкодингом.

    • @einz7293
      @einz7293 4 месяца назад

      стажировка яндекса

  • @Psoglawec
    @Psoglawec 5 месяцев назад

    Ппц. Школьные бесполезные задачки которые на курсах пихают. А я то думал, нафига вместо практики на курсах именно эти тупорылые задачи, которые ничему практическому не учат и только отбивают желание дальше учиться. А их оказывается на собесах подсовывают. А знания, которые в реальной практике в основном используют, на собесах интересуют вообще или там только такую тупость спрашивают? Вот на курсах учат этим тупорылым задачкам, а потом в конце как дубиной по башке "напиши сайт". Походу всё как в жизни, на собесе тупость эту школьную, а как прошел собес занимаешься абсолютно другими делами.

  • @ДанилДмитриев-я5м
    @ДанилДмитриев-я5м 5 месяцев назад

    вторая задача, мое решение

    • @ДанилДмитриев-я5м
      @ДанилДмитриев-я5м 5 месяцев назад

      function countStr(str) { let count = 0; let res = ""; for (let i = 0; i < str.length; i++) { if (str[i] === str[i + 1]) { count++; } else if (count === 0 && str[i] !== str[i + 1]) { res = res + str[i]; } else { count++; res = res + str[i] + count; count = 0; } } return res; }

  • @ДанилДмитриев-я5м
    @ДанилДмитриев-я5м 5 месяцев назад

    спасибо

  • @psevdonim257
    @psevdonim257 6 месяцев назад

    все это хорошо, но КАК попасть на собеседования? КААААК?

    • @alexandrkazakov723
      @alexandrkazakov723 6 месяцев назад

      @@psevdonim257 ищи на линкедин разрабов которые работают в нужных тебе компаниях , пиши им и проси рефералку. В большинстве топ компаний есть рекомендательная реферальная система.

    • @psevdonim257
      @psevdonim257 6 месяцев назад

      @@alexandrkazakov723 вариант, спасибо, сначала надо хороший впн чтоб все завелось

  • @psevdonim257
    @psevdonim257 6 месяцев назад

    так оффер предложили по итогу?

  • @renat7797
    @renat7797 6 месяцев назад

    4) function mon(nums) { let isMon = true let monType = 0 if(nums.length < 3) { return true } for (let i = 1, prevNum = nums[0]; i < nums.length; i++) { const currNum = nums[i] if (currNum !== prevNum) { diffSign = Math.sign(currNum - prevNum) if (monType === 0) { monType = diffSign } else if (monType !== diffSign) { isMon = false break } } prevNum = currNum } return isMon }

  • @topsy_kreds
    @topsy_kreds 6 месяцев назад

    слабо, очень много нелепых комментариев от тебя по ходу собеса, которыми себя же и зарываешь, создается впечатление, что ты не понимаешь о чем говоришь, даже если это не так. Хоть и атмосфера на собесе - "дружеская беседа", это все еще собеседование и любое твое слово будет использовать против тебя в фидбэке) удачи в обучении

    • @alexandrkazakov723
      @alexandrkazakov723 6 месяцев назад

      @@topsy_kreds видимо комментарий мне, но я и второй раунд алгоритмическую секцию успешно прошел. И все это с первого раза, если это слабо, то что же, меня такая слабость устраивает 🙂

    • @topsy_kreds
      @topsy_kreds 6 месяцев назад

      @@alexandrkazakov723 я так понимаю собесы были на стажировку?

    • @alexandrkazakov723
      @alexandrkazakov723 6 месяцев назад

      @@topsy_kreds нет конечно, какая стажировка.

    • @Psoglawec
      @Psoglawec 5 месяцев назад

      Так и надо. Именно рассуждения в слух на собесах и любят. Видимо с молчунами им скучно и заворачивают если конечно это не сеньор которому никакие собесы не нужны.

    • @topsy_kreds
      @topsy_kreds 5 месяцев назад

      @@Psoglawec я не против рассуждений в слух, просто тут человек местами чепуху говорит

  • @kakjejakrut
    @kakjejakrut 6 месяцев назад

    28:41 "Ну давай оценю сложность алгоритма🥺🥺🥺" Боже, как он ее упрашивал)) Ведь готовился

  • @IT_psychopath
    @IT_psychopath 6 месяцев назад

    первая банальная задача.. но очень хорошо показывает опыт программиста и его харды. у вам хеш таблица и путь это ключи! какая нафиг рекурсия..😂 задача на знание js и структур данных. читайте ребят книги! они очень полезные.. кто знает как распаковать объект? вот вам и ответ на задачу. учите структуры данных!..

    • @ЕгорПутятов
      @ЕгорПутятов 4 месяца назад

      Блять я не знаю почему, но мне запал в душу этот коммент. Хочу быть таким же умным и знать дохуя

  • @yagamilite6613
    @yagamilite6613 6 месяцев назад

    Слишком кипишной как будто ,очень много лишних вопросов задавал ,которые не нужны ,особенно в моменте «да давай я оценю сложность алгоритма ?»😃

    • @alexandrkazakov723
      @alexandrkazakov723 6 месяцев назад

      Сложность оценки алгоритма обязательно нужно называть на подобного рода собесах. После этого был второй алгоритмический этап, там две алгоритмические задачи было, прямо спрашивают сложность алгоритма, если ты не не говоришь. А про компании уровня фаанг я молчу.

    • @blessedpigeon6304
      @blessedpigeon6304 4 месяца назад

      ​@@alexandrkazakov723 сложность надо говорить если спрашивают)) если не спрашивают, значит она тривиальная и ты тупо селф репортишь на себя, что для тебя это достижение - посчитать сложность выполнения/памяти

    • @alexandrkazakov723
      @alexandrkazakov723 4 месяца назад

      @@blessedpigeon6304 я просто люблю алгоритмические задачки решать и оценивать сложность алгоритма, умею это хорошо. Вот это я репорчу

    • @blessedpigeon6304
      @blessedpigeon6304 4 месяца назад

      @@alexandrkazakov723 всё-таки совет не очень. лучшим советом будет следовать за интервьюером, не пытаться как-то что-то сверху сбоку придумать-додумать)

  • @ЕвгенийКобзев-ь8ь
    @ЕвгенийКобзев-ь8ь 6 месяцев назад

    4 задача как вариант. function isMonotonic(num) { const mono1 = [...num].sort((a, b) => a - b); const mono2 = [...num].sort((a, b) => b - a); if (mono1.join('') === num.join('') || mono2.join('') === num.join('')) { return true; } return false; }

    • @ProJavaScript
      @ProJavaScript 6 месяцев назад

      Вы 8 раз пробежались по массиву. Спасибо, но нам в программировании такого не нужно.

    • @ЕвгенийКобзев-ь8ь
      @ЕвгенийКобзев-ь8ь 6 месяцев назад

      @@ProJavaScript Да ладно, мне не жалко

    • @AnotherSapiens
      @AnotherSapiens Месяц назад

      За то 4 строки)

    • @AnotherSapiens
      @AnotherSapiens Месяц назад

      У тебя спред пробегает, потом сортировка n2 и перевод строки, много лишнего...

  • @OmonOmon-tr4du
    @OmonOmon-tr4du 6 месяцев назад

    Типатиптатптаитипатипатипатипатипа

  • @siberian-crystall
    @siberian-crystall 6 месяцев назад

    привет! посмотрел с интересом, в процессе накидывал решения :) 1 задачу сделал бы так: function get(obj, chain) { return chain?.split('.').reduce((acc, key) => acc?.[key], obj); } 2 можно тоже в одну строку, гораздо быстрее (для достаточно длинных строк - на порядок) будет регуляркой: function rle(input) { return input.match(/(\w)\1*/g).reduce((acc, v) => acc += v[0] + (v.length > 1 ? v.length : ''), ''); } 3 ваше решение нерабочее по нескольким причинам: интерпретатор ругнётся на return throw (уже писали в комментах) + если после неудачной попытки будет успешная - первый Promise из call stack всё равно не будет заресолвлен. я бы реализовал так: function get(url) { return new Promise(async (resolve, reject) => { let retries = 5; while (retries) { await fetch(url) .then((res) => { if (!res.ok) throw new Error(); // сюда попадёт, например, ошибка 500 resolve(res); retries = 0; }) .catch((e) => (retries--)); } reject('Retry count exceeded'); }); } 4 function isMonotonic(array) { return array.reduce((acc, value, index) => { if (acc.result && index) { const delta = Math.sign(value - array[index - 1]); if (acc.sign && delta && delta != acc.sign) acc.result = false; acc.sign = delta; } return acc; }, { sign: 0, result: true }).result; }

    • @alexandrkazakov723
      @alexandrkazakov723 6 месяцев назад

      Ваше решение второй задачи вызывает вопросы, сложно написать такую регулярку на собесе и не ошибиться. Также мне кажется, что столь короткая запись может быть непонятна интервьюверу и это в минус пойдет.

    • @ProJavaScript
      @ProJavaScript 6 месяцев назад

      @siberian-crystall Ваши решения конечно же гораздо лучше и самое главное - рабочие (в отличие от например, решения задачи 3 на видео). Однако в ваших решениях 1 и 4 есть недостаток: отсутствует предварительный выход из-за использования непрерываемых массивных методов. Т.е., алгоритм в любом случае переберёт весь массив, даже если мы уже можем сделать однозначный вывод, что результат undefined или false. В задаче 4 лучше всего воспользоваться циклом с предварительным return false, а в задаче 1 - рекурсивной функцией или циклом с предварительным return void 0. А задача 2 может быть решена ещё проще и оптимизированее: function rle(input) { return input.replace(/(\w)\1{1,}/g, (str, char) => char + str.length); } Однако отмечу, что попытка решить сложные задачи используя минимальное количество строк кода - не лучшая привычка. Код должен быть очевиден для того, кто его будет читать и пусть код будет многословен - минификаторы за вас его сожмут на этапе билда проекта.

    • @siberian-crystall
      @siberian-crystall 6 месяцев назад

      @@ProJavaScript Отличное дополнение, благодарю! Всё по делу)

    • @КириллЗеленский-н7й
      @КириллЗеленский-н7й 4 месяца назад

      В 4 задачке, можно заранее узнать какой мы ожидаем массиив, и исходя этого закинуть в метод every лямбду.

  • @СветланаАндреевна-х8р
    @СветланаАндреевна-х8р 7 месяцев назад

    Ваши видео с решениями просто клад! Наконец то ютуб показал мне ваш канал

  • @SergiyAntonyuk_PhD
    @SergiyAntonyuk_PhD 7 месяцев назад

    Третья задача: if(counter === 5) { throw new Error("3aдданный URL недоступен") ; } else { ...} return при выбрасывании ошибки не нужен (его наличие вызовет ошибку) Четвертая задача: function isMonotonic(numbers) { if (numbers.length <= 2) return true; let type = numbers[1] - numbers[0]; // Determine monotonicity type in one step for (let i = 2; i < numbers.length; i++) { if ( (type > 0 && numbers[i] < numbers[i - 1]) || (type < 0 && numbers[i] > numbers[i - 1]) || (type == 0 && numbers[i] !== numbers[i - 1]) ) { return false; } } return true; }

    • @siberian-crystall
      @siberian-crystall 6 месяцев назад

      ваше решение вернёт false для массива [1, 1, 2, 3], потому что определяет направление монотонности только по паре первых значений

    • @ВасилийЛазаренко-у3я
      @ВасилийЛазаренко-у3я 4 месяца назад

      ​@@siberian-crystallтак и должно быть

  • @тимур_атмосферный
    @тимур_атмосферный 7 месяцев назад

    Первая задача. Можно в одну строчку сделать или наоборот подробнее разложить. Ненавижу читать рекурсию + я могу ошибаться, но у тебя !object[array[i]] вернет undefined для null function get(initialObject, path) { return path.split('.').reduce((currentObject, currentKey) => { if (!(currentKey in currentObject)) { return undefined; } return currentObject[currentKey]; }, initialObject); }

    • @КириллЗеленский-н7й
      @КириллЗеленский-н7й 4 месяца назад

      У редьюса проблема, что он всегда пройдет до конца массива, а нам после первого же undefined можно прекратить итерироваться по массиву

    • @тимур_атмосферный
      @тимур_атмосферный 4 месяца назад

      ​@@КириллЗеленский-н7й да, а еще проверять через property in obj это я неправильно сделал, через for..of и hasOwn можно сделать: function get(obj, path) { const properties = path.split("."); let current = obj; for (const property of properties) { const hasProperty = Object.hasOwn(current, property); if (!hasProperty) return undefined; current = current[property]; } return current; }

  • @Вбелом-й3з
    @Вбелом-й3з 7 месяцев назад

    задачи простые. сложно походу только на собес попасть. не.. ну понятно, что простые для тех кто задрачивал leetcode.

    • @alexandrkazakov723
      @alexandrkazakov723 7 месяцев назад

      Там ещё второй алгоритмический этап, две задачи были, также не сложные, но из-за волнения всякое может случиться…

    • @topsy_kreds
      @topsy_kreds 6 месяцев назад

      хотите сказать что, чтобы решить первую задачу надо задрачивать литкод?

    • @Вбелом-й3з
      @Вбелом-й3з 6 месяцев назад

      @@topsy_kreds ты уже работаешь в яндексе?

    • @einz7293
      @einz7293 4 месяца назад

      Попасть просто, стажировки яндекс напишите в поисковике и на официальном сайте найдете инструкцию

  • @ЕвгенийТ-ч8в
    @ЕвгенийТ-ч8в 7 месяцев назад

    В задаче про массив забавные условия на 7-8 строках (присвоение вместо сравнения) ) Понятно, что это просто опечатка, но собеседующая добрая (или не обратила внимание).

  • @enoughfornow7310
    @enoughfornow7310 7 месяцев назад

    ага ага ага ага ага ага угу угу угу угу угу угу ага ага ага ага

  • @MyNameIsEd2d2
    @MyNameIsEd2d2 7 месяцев назад

    Братец, а остальные этапы писать будешь? Я про алгосекцию и платформу?

    • @alexandrkazakov723
      @alexandrkazakov723 7 месяцев назад

      Привет, второй этап я также успешно прошел, там было две алгоритм задачки, но его к сожалению я его не записал, можешь в тг моем увидеть что за задачи там были. Третий этап полностью разговорный, там не сильно интересно, вопросы про опыт и на софт скиллы

    • @ЕвгенийТ-ч8в
      @ЕвгенийТ-ч8в 7 месяцев назад

      ​@@alexandrkazakov723у меня было 4 финала и на одном из них так же были задачки. на 3-х других только разговоры. Так-что от команды все-таки зависит.

    • @tillfurthernotice-k5x
      @tillfurthernotice-k5x 7 месяцев назад

      @@alexandrkazakov723 Тебе предложили офер в итоге? И какая вилка была если не секрет

    • @СветланаАндреевна-х8р
      @СветланаАндреевна-х8р 7 месяцев назад

      @@alexandrkazakov723 как найти ваш тг?

  • @maria-kuznetsova-s
    @maria-kuznetsova-s 9 месяцев назад

    Спасибо за объяснение!

  • @zemamba
    @zemamba 10 месяцев назад

    Всё классно, но смущает то что у вас вызывают сложности легкие и немного средних задач, я не являюсь программистом и прорешал уже более 700 :) просто в удовольствие, хотя у вас как вы говорите 5 лет опыта ) вакансии есть?)))

    • @alexandrkazakov723
      @alexandrkazakov723 10 месяцев назад

      Яндекс, гугл, майкрософт, Амазон, мета и многие другие крупнейшие компании просят решить подобные компании на своих собесах, я бы советовал вам туда пробовать устраиваться

    • @alexandrkazakov723
      @alexandrkazakov723 10 месяцев назад

      Ещё кстати, если вы только учитесь в универе, то обязательно стоит пробовать в фаанг со знаниями алгоритмов, так как у них есть программы стажировки. Английский только стоит подтянуть и потренить

    • @denisrozhko2772
      @denisrozhko2772 9 месяцев назад

      скинь ссылку, а то мне чет не особо верится что не программист, но 700 решил

    • @alexandrkazakov723
      @alexandrkazakov723 9 месяцев назад

      да, 700 задач это очень много, это годы регулярного решения задач

  • @Sightools
    @Sightools 10 месяцев назад

    You’re speaking English very well and understandable 👍

  • @Sightools
    @Sightools 10 месяцев назад

    Да, впечатляет, молодец!

  • @ИванФедяков-с3ч
    @ИванФедяков-с3ч 11 месяцев назад

    мужская задача

  • @AndreiSokolov-k7j
    @AndreiSokolov-k7j 11 месяцев назад

    Классное видео! Я как раз решил изучить алгосы и начал смотреть видосы с малой практикой. Но благо наяал понимать, что особ смысла в глупой теории нет, надо сначало самому попытаться решить задачу, а если не вышло, то посмотреть теорию, вот это самый лучший способ их изучить

  • @vadim_matsul
    @vadim_matsul 11 месяцев назад

    Подвел итоги 200 задач, приятно слушать 🔥Молодец

  • @priyanshujha473
    @priyanshujha473 Год назад

    Thanks for the wonderful explanation bro. keep the good work going.

  • @vadim_matsul
    @vadim_matsul Год назад

    не самая сложная задача для записи, но за твой потенциал объяснить людям принцип работы алгоритма - респект, продолжай)

  • @magary4er
    @magary4er Год назад

    well done

  • @tahavirdiwala4881
    @tahavirdiwala4881 Год назад

    How about english?