Menu
CoddyTech
flag Ar iconالعربيةdown icon

Counting Bits

يُعطى لك عدد صحيح n أكبر من أو يساوي 0. لكل عدد i من 0 إلى n، احسب عدد الـ1 الظاهرة عند كتابة i بالنظام الثنائي. أعدّ الأعداد في مصفوفة تضم n+1 مُدخلًا، حيث يكون المُدخل i هو العدد المحسوب للعدد i.

الدالة

countBits(n: integer) → integer-array
ninteger
آخر رقم للعد، 0 أو أكثر
تُرجعinteger-array
مصفوفة من n+1 عددًا، حيث يمثّل العنصر i عدد البتات 1 في i

القيود

  • 0 ≤ n ≤ 2 × 104

أمثلة

المدخلات
n = 2
المخرجات
[0, 1, 1]
الشرح
في النظام الثنائي، 0 هو 0، و1 هو 1، و2 هو 10. أي لا توجد وحدات، ثم وحدة واحدة، ثم وحدتان.

lock icon+15 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

هل يمكنك ملء المصفوفة كاملةً بزمن O(n)، من دون استخدام دالة مدمجة تحسب عدد البتات، ومن دون حساب كل عدد من البداية؟

إعادة ضبط الشيفرة
def countBits(n):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

المدخلات

n = 2

المتوقع

[0, 1, 1]