二进制手表
力扣 401. 二进制手表
题目说明
二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。
- 例如,下面的二进制手表读取
"3:25"。
(图源:WikiMedia - Binary clock samui moon.jpg ,许可协议:Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) )
给你一个整数
turnedOn,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。小时不会以零开头:
- 例如,
"01:00"是无效的时间,正确的写法应该是"1:00"。
分钟必须由两位数组成,可能会以零开头:
- 例如,
"10:2"是无效的时间,正确的写法应该是"10:02"。
- 例如,下面的二进制手表读取
示例
示例 1:
1 | 输入:turnedOn = 1 |
示例 2:
1 | 输入:turnedOn = 9 |
笔者理解
此题是一道位运算算法问题,在力扣题库中被定义为简单题。
解法
当笔者阅读完此题后,发现此题可以转化成经典的位运算题目,让我们来看看具体如何实现的吧。
实现
1 | class Solution { |
时间效率和空间效率都还行,可见此解法还比较适合此题;
总结
本题是今天的每日一题,难度是为简单,感兴趣的朋友都可以去尝试一下,此题还有其他更多的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!










