Яндекс Практикум. Программирование и анализ данных
Полезное для начинающих разработчиков, тестировщиков и аналитиков данных. Отвечаем на вопросы и делимся новостями Практикума. Выбрать курс и попробовать свои силы бесплатно: 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 — головні інсайти року 
