Задачка на обнуление матрицы, будьте внимательны. Поехали !
http://telegra.ph/Task-10-Obnulenie-matricy-09-23
http://telegra.ph/Task-10-Obnulenie-matricy-09-23
Telegraph
Task 10. Обнуление матрицы
Задача: Если элемент матрицы равен 0, то всю строку и весь столбец нужно обнулить. Идея: нужны счетчики, ктр записывают в каком столбце и в какой строке мы нашли 0. Просто пройтись по матрице сразу изменяя значения мы не можем, ибо в матрице могут быть "родные"…
Снова строки, выводим первый уникальный символ. Реализация на JS. Поехали !
http://telegra.ph/Task-11-Pervyj-unikalnyj-simvol-v-stroke-09-25
http://telegra.ph/Task-11-Pervyj-unikalnyj-simvol-v-stroke-09-25
Telegraph
Task 11. Первый уникальный символ в строке
Задача: Вывести первый уникальный символ в строке. Идея: снова работаем с символами, поэтому нам достаточно посчитать количество каждого символа в строке и вывести первый, у кого кол-во вхождений равно 1. Реализация:
Интересная задача на поиск делителей числа, реализация на JS. Поехали !
http://telegra.ph/Task-12-Est-li-takie-dva-chisla-v-massive-peremnozhiv-kotorye-my-poluchim-zadannoe-chislo-X-09-26
http://telegra.ph/Task-12-Est-li-takie-dva-chisla-v-massive-peremnozhiv-kotorye-my-poluchim-zadannoe-chislo-X-09-26
Telegraph
Task 12. Есть ли такие два числа в массиве, перемножив которые мы получим заданное число X
Задача: Дан числовой массив. Проверить, есть ли такие два числа в массиве, перемножив которые мы получим заданное число X. Идея: Заведем обьект HashMap: число -> количество вхождений в массив. Дальше каждый элемент из HashMap будем проверять на делитель числа…
Ребя, привет.
Пара слов о решениях к задачам по алгоритмам. Все эти решения являются сугубо моим "творчеством", поэтому они не претендуют на истину в последней инстанции. Если вы нашли ошибку или знаете более оптимальное решение для задачи, то буду рад обратной связи.
По всем вопросам: @albert_davletov
Пара слов о решениях к задачам по алгоритмам. Все эти решения являются сугубо моим "творчеством", поэтому они не претендуют на истину в последней инстанции. Если вы нашли ошибку или знаете более оптимальное решение для задачи, то буду рад обратной связи.
По всем вопросам: @albert_davletov
Задача на "сжатие" строки, реализация на JS. Поехали !
http://telegra.ph/Task-13-Szhatie-stroki-09-27
http://telegra.ph/Task-13-Szhatie-stroki-09-27
Telegraph
Task 13. Сжатие строки
Задача: Написать функцию, ктр "сжимает" строку. Если полученная строка оказалась больше исходной, то вывести исходную. Например, дана строка "ZZZABBEEE", получить строку вида "Z3A1B2E3", т.е. подставить счетчик вхождения символа. Идея: задача не сложная,…
Ребя, привет. Начал получать от вас фидбек и очень рад этому. Спасибо :)
Например, @badamshin прислал нам свою реализацию алгоритма проверки уникальных символов в строке. За что ему огромное спасибо и +100 в карму. Не стесняйтесь и присылайте мне ваши варианты решений или новые интересные задачи. Обязательно опубликуем их и разберем.
Например, @badamshin прислал нам свою реализацию алгоритма проверки уникальных символов в строке. За что ему огромное спасибо и +100 в карму. Не стесняйтесь и присылайте мне ваши варианты решений или новые интересные задачи. Обязательно опубликуем их и разберем.
Проверяем уникальные символы в строке с помощью регулярок, реализация на JS. Прислал решение @badamshin. Поехали !
http://telegra.ph/Task-1-1-Vse-li-simvoly-v-stroke-vstrechayutsya-odin-raz-09-29
http://telegra.ph/Task-1-1-Vse-li-simvoly-v-stroke-vstrechayutsya-odin-raz-09-29
Telegraph
Task 1_1. Все ли символы в строке встречаются один раз
Задача: написать функцию, ктр проверяет все ли символы в строке встречаются один раз. Идея: будем использовать регулярные выражения для нахождения дубликатов в строке Реализация: реализация с помощью регулярных выражений довольно изящная, его нам прислал…
Новые вариации решений задачи на сжатие строки. Эти решения нам снова прислал @badamshin (респект бро).
Первое решение основано на использовании крутой функции reduce в JS, второе решение использует регулярные выражения. Итак, поехали !
http://telegra.ph/Task-13-1-Szhatie-stroki-10-01
Первое решение основано на использовании крутой функции reduce в JS, второе решение использует регулярные выражения. Итак, поехали !
http://telegra.ph/Task-13-1-Szhatie-stroki-10-01
Telegraph
Task 13_1. Сжатие строки
Наш подписчик @badamshin прислал целых два варианта решений задачи на сжатие строки. Первое решение основано на использовании крутой функции reduce в JS, второе решение использует регулярные выражения. Итак, поехали ! Задача: Повторю условия задачи: нужно…
Отличная подборка по Computer Science: книги, скринкасты, курсы. Есть материал и на русском языке.
https://github.com/EbookFoundation/free-programming-books
https://github.com/EbookFoundation/free-programming-books
GitHub
GitHub - EbookFoundation/free-programming-books: :books: Freely available programming books
:books: Freely available programming books. Contribute to EbookFoundation/free-programming-books development by creating an account on GitHub.
Чтобы не скучали, кидаю простенькую задачку на вывод слов в строке в обратном порядке. Поехали !
http://telegra.ph/Task-14-Vyvesti-slova-v-stroke-v-obratnom-poryadke-10-03
http://telegra.ph/Task-14-Vyvesti-slova-v-stroke-v-obratnom-poryadke-10-03
Telegraph
Task 14. Вывести слова в строке в обратном порядке
Задача: простенькая задачка на вывод слов в строке в обратном порядке. Слова разделены только пробелами. Идея: формируем массив слов и выводим элементы массива в обратном порядке. Реализация: напишем простенькую функцию на JS https://gist.github.com/unil…
Ребя, еще пара слов о решениях алгоритмических задач.
Я стараюсь меньше использовать каких то конкретных фишек языка программирования, а показать решение именно алгоритмической задачи. Разумеется многие задачи можно решать буквально в пару строк кода, используя что то из возможностей языка или фреймворка. Многие решения я публикую на JS, просто потому что их можно делать на коленке в любом браузере и там же тестировать. Надеюсь вы меня поняли :)
Я стараюсь меньше использовать каких то конкретных фишек языка программирования, а показать решение именно алгоритмической задачи. Разумеется многие задачи можно решать буквально в пару строк кода, используя что то из возможностей языка или фреймворка. Многие решения я публикую на JS, просто потому что их можно делать на коленке в любом браузере и там же тестировать. Надеюсь вы меня поняли :)
Интересная задачка на работу с числовым массивом и нахождением локальных максимумов. Поехали !
http://telegra.ph/Task-15-Obem-vody-v-gistogramme-10-04
http://telegra.ph/Task-15-Obem-vody-v-gistogramme-10-04
Telegraph
Task 15. Объем воды в гистограмме
Задача: Дана гистограмма, она представлена числовым массивом: [ 3, 6, 2, 4, 2, 3, 2, 10, 10, 4 ] Нужно посчитать объем воды (1 блок в гистограмме), ктр наберется внутри нее. Идея: будем работать с локальными максимумами. Нам нужно найти все "высокие стенки"…
Ребя, еще пара слов о задачках по алгоритмам.
Алгоритмизация это основа основ в программировани и разработке.
Поэтому многие крутые компании, ктр нужен хороший специалист (не кодер), дают именно алгоритмические задачки на собеседованиях так как это единственный способ понять на что способен программист за буквально полчаса, час.
Поэтому "курите" алгоритмы, чтобы стать крутым спецом!
Напоследок, кидаю требования к позиции разработчика в яндексе.
Хочу заметить алгоритмы идут почти на первом месте в списке требований. Отдельное спасибо за ссылку: @badamshin
https://www.yandex.ru/jobs/frontend-interview
Алгоритмизация это основа основ в программировани и разработке.
Поэтому многие крутые компании, ктр нужен хороший специалист (не кодер), дают именно алгоритмические задачки на собеседованиях так как это единственный способ понять на что способен программист за буквально полчаса, час.
Поэтому "курите" алгоритмы, чтобы стать крутым спецом!
Напоследок, кидаю требования к позиции разработчика в яндексе.
Хочу заметить алгоритмы идут почти на первом месте в списке требований. Отдельное спасибо за ссылку: @badamshin
https://www.yandex.ru/jobs/frontend-interview
Анонс задачи: Как работает банкомат ?
Требуется выдать запрошенную сумму купюрами в рублях начиная от более крупных к более мелким.
Купюры существуют 50 руб, 100 руб, 500 руб, 1000 руб, 5000 руб.
Если выдать данную сумму нельзя — вывести «Введена неверная сумма»
Усложнение: выдать сумму если число купюр ограничено (вводится дополнительные входные данные — количество доступных купюр каждого номинала).
[ { value: 5000, count: 10 },
{ value: 1000, count: 10 },
{ value: 500, count: 10 },
{ value: 100, count: 10 },
{ value: 50, count: 10 }]
Ещё довольно мощное усложнение: как разрулить ситуацию, когда стандартная стратегия выдачи купюр (сначала крупные, потом мельче) не работает?
Например, введем банкноту номиналом 30 рублей, надо выдать 120 рублей.
Если идти от крупных, то не получится (100р. + 20р., а "20р." банкноты нет), но если выдать 4 * 30 рублей, то всё получится.
Входные данные - число для выдачи
Выходные данные - сумма в купюрах или фраза "Введена неверная сумма"
12 руб -> Введена неверная сумма
1250 руб -> 1x1000 2x100 1x50
P.S Попробуйте решить самостоятельно, чуть позже я опубликую свое решение :)
@badamshin, Спасибо за предоставленную задачу !
Требуется выдать запрошенную сумму купюрами в рублях начиная от более крупных к более мелким.
Купюры существуют 50 руб, 100 руб, 500 руб, 1000 руб, 5000 руб.
Если выдать данную сумму нельзя — вывести «Введена неверная сумма»
Усложнение: выдать сумму если число купюр ограничено (вводится дополнительные входные данные — количество доступных купюр каждого номинала).
[ { value: 5000, count: 10 },
{ value: 1000, count: 10 },
{ value: 500, count: 10 },
{ value: 100, count: 10 },
{ value: 50, count: 10 }]
Ещё довольно мощное усложнение: как разрулить ситуацию, когда стандартная стратегия выдачи купюр (сначала крупные, потом мельче) не работает?
Например, введем банкноту номиналом 30 рублей, надо выдать 120 рублей.
Если идти от крупных, то не получится (100р. + 20р., а "20р." банкноты нет), но если выдать 4 * 30 рублей, то всё получится.
Входные данные - число для выдачи
Выходные данные - сумма в купюрах или фраза "Введена неверная сумма"
12 руб -> Введена неверная сумма
1250 руб -> 1x1000 2x100 1x50
P.S Попробуйте решить самостоятельно, чуть позже я опубликую свое решение :)
@badamshin, Спасибо за предоставленную задачу !
Всем привет 😜
Мне пока никто не прислал решения для задачи про банкомат, поэтому публикую свое :)
Если кто то знает более оптимальную реализацию этой задачи, то присылайте и мы ее обязательно разберем и опубликуем !
Внимание, много букв про алгоритмы и объяснение метода динамического программирования, реализация как обычно на JS.
Поехали !
http://telegra.ph/Task-16-Kak-rabotaet-bankomat-10-05
Мне пока никто не прислал решения для задачи про банкомат, поэтому публикую свое :)
Если кто то знает более оптимальную реализацию этой задачи, то присылайте и мы ее обязательно разберем и опубликуем !
Внимание, много букв про алгоритмы и объяснение метода динамического программирования, реализация как обычно на JS.
Поехали !
http://telegra.ph/Task-16-Kak-rabotaet-bankomat-10-05
Telegraph
Task 16. Как работает банкомат ?!
Задача: Требуется выдать запрошенную сумму купюрами в рублях начиная от более крупных к более мелким. Купюры существуют 50 руб, 100 руб, 500 руб, 1000 руб, 5000 руб. Если выдать данную сумму нельзя — вывести сообщение об ошибке. Первое усложнение: выдать…
Кстати, я дублирую код в gist, поэтому вы можете писать свой фидбек там.
Ссылочки вы сможете найти внизу статьи!
Ссылочки вы сможете найти внизу статьи!
Вспомнил простенькую задачку со своего старого интервью :)
Task 17. Поменять значения двух переменных без использования третьей.
1 способ:
a = a + b;
b = a - b;
a = a - b;
2 спобоб, операция XOR:
a = a ^ b;
b = b ^ a;
a = a ^ b;
Task 17. Поменять значения двух переменных без использования третьей.
1 способ:
a = a + b;
b = a - b;
a = a - b;
2 спобоб, операция XOR:
a = a ^ b;
b = b ^ a;
a = a ^ b;
#array #xor
Простенькая задачка на выходные :)
Снова работаем с числовым массивом, реализация на JS.
http://telegra.ph/Task-18-Vyvesti-neparnyj-ehlement-v-chislovom-massive-10-07
Простенькая задачка на выходные :)
Снова работаем с числовым массивом, реализация на JS.
http://telegra.ph/Task-18-Vyvesti-neparnyj-ehlement-v-chislovom-massive-10-07
Telegraph
Task 18. Вывести непарный элемент в числовом массиве
Задача: дан массив натуральных чисел. Каждое из чисел присутствует в массиве ровно два раза, кроме одного. Найти число без пары. Идея: воспользуемся операцией XOR (побитовое ИЛИ) и ее свойствами. a XOR a = 0 a XOR 0 = a a XOR b = b XOR a Выполним XOR операцию…
Дополнение к задаче 18: Вывести непарный элемент в числовом массиве.
Что если непарных элементов больше 1го ?!
Присылайте свои реализациии этой задачи.
Всем хороших выходных !
Что если непарных элементов больше 1го ?!
Присылайте свои реализациии этой задачи.
Всем хороших выходных !
#array #xor
Продолжаем работать с операцией XOR. Выводим 2 непарных числа в массиве, реализация на JS.
http://telegra.ph/Task-18-1-Vyvesti-2-neparnyh-ehlementa-v-chislovom-massive-10-09
Продолжаем работать с операцией XOR. Выводим 2 непарных числа в массиве, реализация на JS.
http://telegra.ph/Task-18-1-Vyvesti-2-neparnyh-ehlementa-v-chislovom-massive-10-09
Telegraph
Task 18_1. Вывести 2 непарных элемента в числовом массиве
Задача: дан массив натуральных чисел. Каждое из чисел присутствует в массиве ровно два раза, кроме двух элементов. Найти числа без пары. Идея: если просто сделать xor всех чисел в массиве, понятно что результатом будет first^second - xor двух непарных чисел.…