给我们一块表,这个表显示的时间是12小时制,表上显示小时和分钟,且这个表显示的方式是2进制形式(小时4位,分钟6位表示),告诉我们某一时刻表上显示“1”的个数,问我们当前可能的时间有哪些?
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"]
对于这道题目,首先思考,12小时制的表格,小时是从0~11,分钟是从0~59,这么小的数据我们完全可以预处理出每一种情况下小时或者分钟包含“1”的个数,然后我们分拆num为两块小时和分钟,再枚举下小时和分钟分别占了几个“1”,得到所有的情况。
http://www.jiuzhang.com/solutions/binary-watch/
能够迅速分析出小数据,能够暴力预处理所有情况,那么本题就可以达到hire程度。
http://www.lintcode.com/zh-cn/problem/next-smaller-and-larger-number-with-the-same-1-bits/
想进FLAG实习?九章帮你系统讲解面试算法,解决面试时常见算法问题
以下课程,正在报名中!
《九章算法班》
《算法强化班》
《Java入门与基础算法班》
《Big Data 项目实战班》
第一节免费试听!!
报名网址http://t.cn/RAC7Era, 或猛戳“阅读原文”