lintcode 您所在的位置:网站首页 领克新能源车价格 lintcode

lintcode

2024-02-27 16:30| 来源: 网络整理| 查看: 265

题目描述: 给了一个二进制显示时间的手表和一个非负整数 n, n 代表在给定时间表上 1 的数量, 返回所有可能的时间。

注意事项: 输出的顺序没有要求. 小时不能包含前导零, 比如 “01:00” 是不允许的, 应该为 “1:00”. 分钟必须由两位数组成, 可能包含前导零, 比如 “10:2” 是无效的, 应该为 “10:02”.

样例: 给出 n = 1 返回 [“1:00”, “2:00”, “4:00”, “8:00”, “0:01”, “0:02”, “0:04”, “0:08”, “0:16”, “0:32”]

思路讲解: 首先我们弄懂什么是二进制手表,通常的二进制手表用4位二进制表示小时,4位二进制可以表示0~15,但表示小时的只用0~12:0000~1100,LED点亮表示1,熄灭表示0;用6位二进制表示分钟,6位二进制可以表示0~63,但表示分钟的只用0~59:000000~111011,仍然是LED点亮表示1,熄灭表示0。 这里写图片描述 故我们可以简化这个手表,就是一个10位的二进制,前六位为分钟,后四位为小时,题目说1的个数,这样我们就可以利用深度搜索,递归在10个位置中放置1,

代码详解:

class Solution { public: /* * @param : the number of "1"s on a given timetable * @return: all possible time */ vector binaryTime(int num) { // Write your code here vectorwatch; for(int i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有