Библиотека задач по C++ | тесты, код, задания
Открыть в Telegram
Задачи и тесты по C++ для тренировки и обучения. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/7a480301 Для обратной связи: @proglibrary_feeedback_bot
Больше6 361
Подписчики
-724 часа
-6 1317 дней
-13 55630 день
Архив постов
Repost from Книги для программистов
📖 От Кнута до Седжвика: классика алгоритмической литературы
Обзор лучших книг по алгоритмам для программистов всех уровней. От иллюстрированных пособий для начинающих до фундаментальных трудов для экспертов.
🔗 Читать подборку
🍯 Задача с собеседования
Входные данные:
- Дан массив состоящий из int'ов
- Повторяющихся элементов в списке нет
Задача:
- Нужно преобразовать этот массив в строку, сворачивая соседние по числовому ряду числа в диапазоны
Примеры:
[1,4,5,2,3,9,8,11,0] => "0-5,8-9,11"
[1,4,3,2] => "1-4"
[1,4] => "1,4"
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
std::string convertToRanges(std::vector<int>& nums) {
if (nums.empty()) {
return "";
}
// Сортируем вектор
std::sort(nums.begin(), nums.end());
std::vector<std::string> ranges;
int start = nums[0];
int prev = start;
for (size_t i = 1; i < nums.size(); ++i) {
if (nums[i] != prev + 1) {
// Если последовательность прервалась, добавляем диапазон
if (start == prev) {
ranges.push_back(std::to_string(start));
}
else {
ranges.push_back(std::to_string(start) + "-" + std::to_string(prev));
}
start = nums[i];
}
prev = nums[i];
}
// Добавляем последний диапазон
if (start == prev) {
ranges.push_back(std::to_string(start));
}
else {
ranges.push_back(std::to_string(start) + "-" + std::to_string(prev));
}
// Объединяем диапазоны в одну строку
std::ostringstream result;
for (size_t i = 0; i < ranges.size(); ++i) {
if (i > 0) {
result << ",";
}
result << ranges[i];
}
return result.str();
}
int main() {
std::vector<int> nums1 = { 1, 4, 5, 2, 3, 9, 8, 11, 0 };
std::cout << convertToRanges(nums1) << std::endl; // Ожидаемый вывод: "0-5,8-9,11"
std::vector<int> nums2 = { 1, 4, 3, 2 };
std::cout << convertToRanges(nums2) << std::endl; // Ожидаемый вывод: "1-4"
std::vector<int> nums3 = { 1, 4 };
std::cout << convertToRanges(nums3) << std::endl; // Ожидаемый вывод: "1,4"
return 0;
}Оптимизируем до последней капли: cache-friendly код на C++
❓Хотите узнать, как «выжимать» последние проценты скорости в программе на C++?
⏰ Ждем вас на открытом вебинаре 4 сентября в 20:00 мск, где мы разберем:
- как реализовать доступ к оперативной памяти (ОП) в современных системах;
- «плохие» и «хорошие» паттерны доступа к ОП;
- как писать дружелюбный к кэшу код на C++.
Урок идеально подходит для разработчиков, которые заботятся о скорости выполнения кода и уже пишут или планируют перейти на C++.
🔥 Спикер Андрей Рыжиков — разработчик в НИИ обработки аэрокосмических изображений.
Встречаемся в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение!
👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CyFyj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Что будет при попытке компиляции кода?
👾 -35% на курс по алгоритмам
На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код – https://proglib.io/w/d2892d1b
23 390 рублей 35 990 рублей
Что еще вас ждет на курсе:
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🌚 Переходите на сайт, читайте подробности и заходите на обучение по самым выгодным условиям – https://proglib.io/w/d2892d1b
👁 TLDR: Wunder Fund, Senior Core Engineer, C++, Infrastructure, Алготрейдинг, HFT, remote
💵 Вилка: $5-8k net (на руки)
Мы в Wunder Fund занимаемся высокочастотной алгоритмической торговлей (HFT) на биржах по всему миру последние 10 лет. Для нас очень важна скорость, и мы боремся на микросекунды; иногда — и за наносекунды.
📍Что предстоит делать:
Сейчас мы ищем опытного С++ инженера в core-команду торговой системы. Вы будете разрабатывать инфраструктуру для торговли на многих биржах, как классических, так и криптовалютных. Заниматься ускорением торговой системы, внедрять оптимизации и бирже-специфичные хаки.
Уверены, что сможем предложить интересные и сложные задачи.
💫 Совершенно точно нужно:
- Опыт на С++ от 4 лет, хорошее знание Python 3
- Классические алгоритмы и структуры данных
- Опыт системного программирования, понимание работы сетевых протоколов
- Опыт профилирования и оптимизации кода
🔎 Условия:
- У нас небольшая и сильная команда выпускников МГУ и Физтеха.
- Минимум бюрократии, решения принимаются быстро.
- Удаленная работа, при желании оплачиваем коворкинг.
- Зарплата по результатам: $5k - $8k на руки (есть привязка к валюте, можем платить в долларах или крипте)
Для связи: @wunderfund
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
