0%

binary-watch

Binary Watch – LeetCode 401

Problem

Description

A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59).

Each LED represents a zero or one, with the least significant bit on the right.

Example

Input: n = 1
Return: [“1:00”, “2:00”, “4:00”, “8:00”, “0:01”, “0:02”, “0:04”, “0:08”, “0:16”, “0:32”]

Answer

Original

Code

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
vector<string> readBinaryWatch(int num) {
vector<string> rs;
for (int h = 0; h < 12; h++)
for (int m = 0; m < 60; m++)
if (bitset<10>(h << 6 | m).count() == num)
rs.emplace_back(to_string(h) + (m < 10 ? ":0" : ":") + to_string(m));
return rs;
}
};

思路

总共72种方案,索性先生成再验证,时间复杂度$O(n)$,空间复杂度$O(1)$。
耗时$2$ ms,排名$53.95\%$

Better

还没看到更好的思路。