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: אין אחדות, ואז אחת, ואז אחת.
challenge icon

שאלת המשך

האם תוכל למלא את כל המערך בזמן O(n), בלי להשתמש בפונקציה מובנית שסופרת ביטים ובלי לספור כל מספר מחדש?

איפוס הקוד
def countBits(n):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

ארגומנט

n = 2

הפלט הצפוי

[0, 1, 1]