Menu
CoddyTech

Counting Bits

Vous recevez un nombre entier n supérieur ou égal à 0. Pour chaque nombre i de 0 à n, comptez le nombre de 1 présents dans l’écriture binaire de i. Renvoyez les comptes sous forme d’un tableau de n+1 éléments, où l’élément i est le compte pour le nombre i.

Fonction

countBits(n: integer) → integer-array
ninteger
le dernier nombre à compter, 0 ou plus
Renvoieinteger-array
un tableau de n+1 nombres, où l’entrée i correspond au nombre de bits à 1 dans i

Contraintes

  • 0 ≤ n ≤ 2 × 104

Exemples

Entrée
n = 2
Sortie
[0, 1, 1]
Explication
En binaire, 0 est 0, 1 est 1 et 2 est 10. Cela correspond à aucun 1, puis un, puis un.

lock icon+15 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu remplir tout le tableau en O(n), sans utiliser de fonction intégrée qui compte les bits et sans recompter chaque nombre depuis zéro ?

Réinitialiser le code
def countBits(n):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Entrée

n = 2

Attendu

[0, 1, 1]