Яндекс Практикум. Программирование и анализ данных
Полезное для начинающих разработчиков, тестировщиков и аналитиков данных. Отвечаем на вопросы и делимся новостями Практикума. Выбрать курс и попробовать свои силы бесплатно: 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) {
...
}
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
