Яндекс Практикум. Программирование и анализ данных
Полезное для начинающих разработчиков, тестировщиков и аналитиков данных. Отвечаем на вопросы и делимся новостями Практикума. Выбрать курс и попробовать свои силы бесплатно: https://ya.cc/t/3bO2f2245AmCeQ Номер заявления в РКН 4970781590
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Яндекс Практикум. Программирование и анализ данных
تُعد قناة Яндекс Практикум. Программирование и анализ данных (@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 — أهم رؤى العام 
