UniLecs | Программирование
19.4K subscribers
959 photos
6 videos
3 files
1.22K links
🤘🏻Задачи, головоломки, книги и другие радости программиста.

Оглавление канала: telegra.ph/UniLecs-FAQ-09-30

Чат: @unilecs_chat
Бот: @unilecsBot
VK: vk.com/unilecs

Админ, сотрудничество: @dashalvv
Редактор: @amdavletov
Download Telegram
Двухсторонняя очередь (deque — double ended queue) — структура данных, в которой элементы можно добавлять и удалять как в начало, так и в конец. В некоторых языках программирования реализована в классическом варианте, в некоторых может быть реализована при помощи связного списка.
Отлично дополняет классическую структуру данных - очередь, где возможно добавление только в конец, а выборка только с начала. И данная задача прекрасный пример работы с deque!

#task_191 #c_sharp
https://medium.com/unilecs/task-70c015f82a8
В таких задачах вполне логично работать с такой структурой данных, как очередь, однако часто бывает, что необходимо делать вставки как в конец, так и в начало очереди. Для таких целей подойдет обычный массив, либо связный список.

#task_193 #c_sharp
https://medium.com/unilecs/task-9aa1af659300
👨🏻‍💻 Целью этой задачи было частично познакомить вас с такой структурой данных как multiset - это контейнер, который автоматически сортирует добавляемые элементы в порядке возрастания. Также multiset хранит повторяющееся элементы, в отличие от простого set.
Multiset позволит вам не выполнять сортировку вручную на каждом шаге цикла.

#task_196 #cpp #c_sharp
https://medium.com/unilecs/task-82df9b4f67cc
👨🏻‍💻 Разбор нашей последней задачи, теория графов в полной красе. Задача усложнялась только тем, что шахматный конь был не один. Смотрим разбор!

#task_197 #c_sharp #bfs
https://medium.com/unilecs/task-89b705aa420b
👨🏻‍💻 Классическая ошибка джунов - "А, это же легко!" А потом выясняется, что код работает не во всех случаях.
Будьте внимательны даже при решении самых простых задач!

#task_201 #c_sharp
https://medium.com/unilecs/unilecs-task-special-sum-6d0c9dca766f
👨🏻‍💻 Сдвиг элементов массива на K, равному размеру исходного массива, не изменит исходное положение. Очевидно, это верно и для любого K кратному размеру исходного массива.
Детали разбора с 2мя различными подходами смотрите в нашей статье!

#task_202 #c_sharp
👨🏻‍💻 На наш взгляд, это отличная задача для позиции middle-разработчика. Довольно простая, чтобы мог справиться любой программист. В то же время, количество попыток, после которых алгоритм будет работать корректно, покажет его настоящий уровень.

#task_203 #c_sharp
Разбираем всевозможное количество ходов коня на шахматной доске! Задача на использование динамического программирования, смотрим разбор! 👇

#task_204 #c_sharp
🤗 Прекрасная задача по программированию, никаких сложных алгоритмов тут нет. Нужна лишь внимательность и знание типов данных. Очень часто именно эту задачу можно встретить на технических интервью, поэтому настоятельно рекомендуем порешать ее самостоятельно!

#task_205 #c_sharp
👨🏻‍💻 Существует много вариантов правил для создания последовательностей, подобных «Посмотри-и-скажи». Например, последовательность «pea pattern». Она отличается от «Посмотри-и-скажи» тем, что для получения нового числа в ней нужно подсчитывать все одинаковые цифры в числе. Начиная с числа 1, получим: 1, 11 (одна единица), 21 (две единицы), 1211 (одна двойка, одна единица), 3112 (три единицы, одна двойка), 132112 (одна тройка, две единицы, одна двойка), 312213 (три единицы, две двойки, одна тройка) и т. д. В итоге, последовательность приходит к циклу из двух чисел, 23322114 и 32232114.

#task_209 #c_sharp
👨🏻‍💻 Связанные списки являются довольно популярной структурой данных и уступают только массивам. Они являются простой реализацией динамических структур данных, использующих указатели для реализации. Понимание работы указателей является необходимым условием для того, чтобы понять связанные списки.

#task_211 #c_sharp
👨🏻‍💻 Эта задача имеет несколько интересных способов решения. Мы приводим только один из них, остальные попробуйте реализовать самостоятельно!

#task_212 #c_sharp
🌳 Очень часто при решении задач на деревья используется рекурсия. В данном случае мы также ею воспользуемся для расчета максимальной высоты. Детали реализации смотрите в нашем разборе!

#task_213 #c_sharp
👨🏻‍💻 Продолжаем цикл задач на связные списки!
Казалось бы, обычная операция на удаление элемента вызывает некоторые сложности в связном списке. Смотрите разбор и реализацию такой операции!

#task_214 #c_sharp