Skip to content

Commit a46d3fc

Browse files
Create Day 28 Counting Bits.cpp
1 parent ffd80a5 commit a46d3fc

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

Day 28 Counting Bits.cpp

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
PROBLEM:
2+
3+
4+
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
5+
binary representation and return them as an array.
6+
7+
Example 1:
8+
Input: 2
9+
Output: [0,1,1]
10+
11+
Example 2:
12+
Input: 5
13+
Output: [0,1,1,2,1,2]
14+
15+
Follow up:
16+
17+
1. It is very easy to come up with a solution with run time O(n*sizeof(integer)). But can you do it in linear time
18+
O(n) /possibly in a single pass?
19+
2. Space complexity should be O(n).
20+
3. Can you do it like a boss? Do it without using any builtin function like __builtin_popcount in c++ or in any other language.
21+
22+
23+
24+
25+
SOLUTION:
26+
27+
28+
29+
class Solution {
30+
public:
31+
vector<int> countBits(int num) {
32+
33+
int i;
34+
35+
vector<int> v;
36+
37+
for(i=0;i<=num;i++)
38+
{
39+
v.push_back(__builtin_popcount(i));
40+
}
41+
42+
43+
return v;
44+
}
45+
};class Solution {
46+
public:
47+
vector<int> countBits(int num) {
48+
49+
int i;
50+
51+
vector<int> v;
52+
53+
for(i=0;i<=num;i++)
54+
{
55+
v.push_back(__builtin_popcount(i));
56+
}
57+
58+
59+
return v;
60+
}
61+
};

0 commit comments

Comments
 (0)