Menu
CoddyTech

Counting Bits

0以上の整数 n が与えられたとき、n+1 個の要素を持つ配列を返します。各 i について、i 番目の要素は、0から n までのすべての i の二進表記に含まれる1の数です。

関数

countBits(n: integer) → integer-array
ninteger
数える最後の数、0 以上
戻り値integer-array
n+1個のカウントからなる配列で、i番目の要素はiに含まれる1ビットの数

制約

  • 0 ≤ n ≤ 2 × 104

例

入力
n = 2
出力
[0, 1, 1]
説明
2進数では、0は0、1は1、2は10です。1がない状態、次に1つ、そして1つです。
challenge icon

発展問題

ビットを数える組み込み関数を使わず、各数値を一から数え直すこともなく、O(n)時間で配列全体を埋められますか?

コードをリセット
def countBits(n):
    # ここにコードを書いてください

テスト #1

テスト #2

引数

n = 2

期待される出力

[0, 1, 1]