Counting Bits(Difficulty: Medium)
题目:
Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array.
Example:
For num = 5
you should return [0,1,1,2,1,2]
.
实现:
1 class Solution {
2 public:
3 vector<int> countBits(int num) {
4 vector<int> result;
5 for (int i = 0; i <= num; i++)
6 {
7 int count = 0;
8 int j = i;
9 while (j)
10 {
11 ++count;
12 j = (j-1) & j;
13 }
14 result.push_back(count);
15 }
16 return result;
17 }
18 };