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 bits in the binary representation of i.
We use analytics and advertising cookies to understand how the site is used and whether our ads on Facebook and Instagram work. They are set only if you accept. See our Privacy Policy for details.
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 bits in the binary representation of i.
An easy bit manipulation problem, graded against 6 test cases (3 of them hidden).
XOR, masks, and shifts - constant-space tricks for counting and pairing.
Reach for it when you see: "Appears once/twice", powers of two, or an explicit O(1) space requirement.
More Bit Manipulation problems →Every number `i` shares its binary digits with `i >> 1` (i shifted right by one), plus possibly a trailing 1. So `ans[i] = ans[i >> 1] + (i & 1)`. Building the table left to right answers every prefix in constant time per entry.
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.