The idea behind is to enumerate all possible combinations and count the bit of 1. If the bits number matches the input, then output the time.
1: class Solution {
2: public:
3: vector<string> readBinaryWatch(int num) {
4: vector<string> res;
5: for (int h = 0; h < 12; h++) {
6: for (int m = 0; m < 60; m++) {
7: if (countBits((h << 6) | m) == num) {
8: res.push_back(to_string(h) + (m < 10 ? ":0" : ":") + to_string(m));
9: }
10: }
11: }
12: return res;
13: }
14: int countBits(int n) {
15: int count = 0;
16: while (n) {
17: n &= n-1;
18: count++;
19: }
20: return count;
21: }
22: };
No comments:
Post a Comment