Яндекс Практикум. Программирование и анализ данных
Полезное для начинающих разработчиков, тестировщиков и аналитиков данных. Отвечаем на вопросы и делимся новостями Практикума. Выбрать курс и попробовать свои силы бесплатно: https://ya.cc/t/3bO2f2245AmCeQ Номер заявления в РКН 4970781590
Больше📈 Аналитический обзор Telegram-канала Яндекс Практикум. Программирование и анализ данных
Канал Яндекс Практикум. Программирование и анализ данных (@practicumtech) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 11 641 подписчиков, занимая 10 745 место в категории Технологии и приложения и 56 489 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 11 641 подписчиков.
Согласно последним данным от 14 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -123, а за последние 24 часа — -2, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 13.00%. В первые 24 часа после публикации контент обычно набирает 5.35% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 515 просмотров. В течение первых суток публикация набирает 624 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 5.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как программирование, собеседование, c++, работодатель, программист.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Полезное для начинающих разработчиков, тестировщиков и аналитиков данных. Отвечаем на вопросы и делимся новостями Практикума. Выбрать курс и попробовать свои силы бесплатно: https://ya.cc/t/3bO2f2245AmCeQ
Номер заявления в РКН 4970781590”
Благодаря высокой частоте обновлений (последние данные получены 15 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
from bisect import bisect_left
def find(a: [int], k: int) -> int:
if not a:
return -1
i = bisect_left(a, k)
if i >= len(a):
return len(a) - 1
if not i or abs(k-a[i]) <= abs(k-a[i-1]):
return i
return i-1
Если задача показалась вам слишком легкой, Кирилл предлагает попробовать выполнить ее без модуля bisect.1 <= N <= 10^6
Число k: 0 <= k <= N
Индекс элемента: 0 <= index < N
Примеры
[1, 3, 4, 7, 9, 12] k = 5 Ответ: 2 (число 4)
[1, 3, 4, 12, 15, 15, 18] k = 14 Ответ: 4 (первое число 15)Решение не должно превышать по временно́й асимптотике O(log(N)), где N — длина массива.
int FindSingleNumber(const vector<int>& nums) {
int result = 0;
for (int n : nums) {
result ^= n;
}
return result;
}
Такой способ позволяет решить за O(n) по времени и O(1) по памяти.
Это возможно с помощью оператора XOR — исключающее ИЛИ.
Числа состоят из байтов, а байты из битов. XOR работает с битами двух чисел и возвращает в результате третье число. Операция производится поразрядно по одному биту из каждого числа.
XOR вернёт 1, если только один бит равен 1. Получится вот так:
A B C 0 0 0 1 0 1 0 1 1 1 1 0На примере вот такого вектора:
{12, 11, 12} рассмотрим что будет происходить. Покажем только 4 первых бита:
Изначально result равен нулю, значит:
0 ^ 12 — 0000 ^ 1100 = 1100
1100 ^ 11 — 1100 ^ 1011 = 0111
0111 ^ 12 — 0111 ^ 1100 = 1011
В конце получился 1011, это 11 в двоичной системе исчисления.
Первое число просто присвоилось переменной result, а далее биты другого числа вычитались из него. После второго числа в переменной было число 0111 — число 7. Если бы не условие, что все числа будут повторяться дважды, кроме одного, то наличие числа 7 в векторе всё бы испортило и превратило число назад в 0. Второе повторение того же числа (необязательно даже последовательное) отменяет первую операцию. А так как одно число повторяется только один раз, то его никто не компенсировал, и оно осталось храниться в результате.
Битовые операции используются в разных трюках. Попробуйте решить эту задачу менее оптимальным способом по памяти, например с использованием множества или словаря.int FindSingleNumber(vector<int>& nums) {
...
}
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
