Counting Bits

Medium~15 min

Given an integer n, return an array ans of length n + 1 such that for each i (0 <= i <= n), ans[i] is the number of 1's in the binary representation of i.

Try to solve it in O(n) time and without using the built-in popcount function.

Examples

Example 1
Input: n = 2
Output: [0, 1, 1]
Explanation: 0 --> 0 (zero 1s), 1 --> 1 (one 1), 2 --> 10 (one 1).
Example 2
Input: n = 5
Output: [0, 1, 1, 2, 1, 2]
Explanation: 0 --> 0, 1 --> 1, 2 --> 10, 3 --> 11, 4 --> 100, 5 --> 101.

Constraints

  • 0 <= n <= 10^5
  • Expected time complexity: O(n)
Code
Ctrl+EnterRun|Ctrl+⇧+EnterSubmit
Output

Run your code to see results

Use Cmd+Enter to run