博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode401Binary Watch二进制手表
阅读量:4991 次
发布时间:2019-06-12

本文共 2142 字,大约阅读时间需要 7 分钟。

二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。

每个 LED 代表一个 0 或 1,最低位在右侧。

给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。

案例:

输入: n = 1 返回: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"]

 

注意事项:

  • 输出的顺序没有要求。
  • 小时不会以零开头,比如 “01:00” 是不允许的,应为 “1:00”。
  • 分钟必须由两位数组成,可能会以零开头,比如 “10:2” 是无效的,应为 “10:02”。

 

class Solution {public:    vector
res; int visit[10]; int visit2[60][60]; int times[10];//从小到大 vector
readBinaryWatch(int num) { if(num == 0) { res.push_back("0:00"); return res; } int x = 1; for(int i = 0; i < 6; i++) { times[i] = x; x *= 2; } x = 1; for(int i = 6; i < 10; i++) { times[i] = x; x *= 2; } DFS(num, 0, 0); return res; } void DFS(int n, int h, int m) { if(n == 0) { if(visit2[h][m] == 1) return; string str = ""; if(h == 0) { str = str + '0'; } else { str = str + to_string(h); } str += ':'; if(m == 0) { str = str + "00"; } else if(m < 10) { str = str + '0' + to_string(m); } else { str = str + to_string(m); } res.push_back(str); visit2[h][m] = 1; return; } for(int i = 0; i < 10; i++) { if(visit[i] == 1) continue; if(i < 6) { if(m + times[i] > 59) continue; visit[i] = 1; DFS(n - 1, h, m + times[i]); visit[i] = 0; } if(i >= 6) { if(h + times[i] > 11) continue; visit[i] = 1; DFS(n - 1, h + times[i], m); visit[i] = 0; } } }};

 

转载于:https://www.cnblogs.com/lMonster81/p/10434099.html

你可能感兴趣的文章
CodeForces 1152D Neko and Aki's Prank
查看>>
Python 用pygame模块播放MP3
查看>>
inline必须在定义、实现都标记
查看>>
从单链表到循环链表
查看>>
百度招聘无处不在!
查看>>
丢失控制文件恢复实验记录--3(当前的控制文件损坏,归档日志文件损坏且备份的控制文件是旧的情况恢复数据库)...
查看>>
Ganglia监控MySQL
查看>>
反射和动态导入模块
查看>>
信息社会
查看>>
Mysql存储引擎概念特点介绍及不同业务场景选用依据
查看>>
关于Java类Calendar做统计时 获取日期的一些常见操作
查看>>
从程序员转向淘宝店主的探索
查看>>
openstack 中国联盟公开课參会总结
查看>>
约瑟夫环问题详解 (c++)
查看>>
Ubuntu 配置VNC以及使用VNC连接时,无法显示系统菜单栏,解决方法
查看>>
BZOJ.3990.[SDOI2015]排序(DFS)
查看>>
hdu 1358
查看>>
“-fembed-bitcode is not supported on versions of iOS prior to 6.0” 错误
查看>>
[转]jquery mobile中redirect重定向问题
查看>>
[django]表格的添加与删除实例(可以借鉴参考)
查看>>