Menu
CoddyTech

Counting Bits

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

الدالة

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: لا توجد أيّ 1، ثم واحد، ثم واحد.
challenge icon

سؤال إضافي

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

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

اختبار #1

اختبار #2

وسيط

n = 2

الإخراج المتوقع

[0, 1, 1]