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`.
**Example 1:**
```
Input: n = 2
Output: [0,1,1]
Explanation: 0 → 0, 1 → 1, 2 → 10
```
**Example 2:**
```
Input: n = 5
Output: [0,1,1,2,1,2]
```
Write an algorithm that runs in linear time O(n) and uses only O(n) space.