博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]--401. Binary Watch(递归有点懵)
阅读量:5740 次
发布时间:2019-06-18

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

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.

For example, the above binary watch reads “3:25”.

Given a non-negative integer n which represents the number of LEDs that are currently on, return all possible times the watch could represent.

Example:

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

Note:

The order of output does not matter.
The hour must not contain a leading zero, for example “01:00” is not valid, it should be “1:00”.
The minute must be consist of two digits and may contain a leading zero, for example “10:2” is not valid, it should be “10:02”.

分别对小时、分钟两个部分进行回溯,然后将结果进行组合。

public class Solution {
int hour[] = new int[] { 1, 2, 4, 8 }; int minu[] = new int[] { 1, 2, 4, 8, 16, 32 }; public List
readBinaryWatch(int num) { List
res = new ArrayList
(); for (int i = 0; i <= num; i++) { dspCombination(hour, i, 0, true); dspCombination(minu, num - i, 0, false); for (int m : hs) { for (int n : ms) { if (n == 0) res.add("" + m + ":00"); else { if (n / 10 == 0) res.add("" + m + ":0" + n); else res.add("" + m + ":" + n); } } } hs.clear(); ms.clear(); } return res; } List
list = new ArrayList
(); List
hs = new ArrayList
(); List
ms = new ArrayList
(); private void dspCombination(int[] nums, int k, int level, boolean flag) { if (list.size() == k) { int sum = 0; for (int num : list) { sum += num; } if (flag) { // 当前是hour if (sum <= 11) hs.add(sum); } else { if (sum <= 59) ms.add(sum); } return; } else if (list.size() > k) { return; } else { for (int i = level; i < nums.length; i++) { list.add(nums[i]); dspCombination(nums, k, i + 1, flag); list.remove(list.size() - 1); } } }}

转载地址:http://mpbzx.baihongyu.com/

你可能感兴趣的文章
SpringMVC学习指南【笔记6】JSTL标签、函数
查看>>
GPS轨迹数据集免费下载资源整理
查看>>
考研?还是直接找工作?
查看>>
ue4 蓝图物体怎么不跟着蓝图动_UE4部分蓝图
查看>>
联通4g满格但是网速慢_为什么手机4G信号明明是满格,网络却很慢,背后的真实原因?...
查看>>
plcst语言编程教程_仅仅就用了两年,我就轻松学会了所有的编程语言!(附教程)...
查看>>
ⅰsee是什么意思_安氏分类ⅠⅡⅢ,你的牙齿是哪类
查看>>
bable怎么使用 eclipse_Java Web轻松学46 - Maven集成到Eclipse中
查看>>
flex 换主轴后子元素占满_Flex布局,真香!
查看>>
机器人 知乎碧桂园_碧桂园机器人首降淮阳,助力城市文化旅游
查看>>
ae2020不支持的视频驱动程序_音视频PaaS平台基于Windows的抓屏技术
查看>>
图纸打印什么时候用蓝图_工程图纸为什么是蓝图?
查看>>
网页中竖的目录怎么改成横的_骨架隔墙怎么做?
查看>>
查看历史操作记录_git操作方法
查看>>
5怎么选国外节点_房子装修,床垫怎么选?这5家床垫值得买
查看>>
变成一列_Excel一列数据转多行多列,这4条函数公式可以学起来
查看>>
手机超广角拍摄软件_如何用超广角“看开一点”?OPPO官方教学,这些大片装下整个夏天...
查看>>
rip协议中周期性广播路由信息的报文_关于RIP的一点小笔记--华为
查看>>
linux oracle无法解析指定的连接标识符_pl/sql连接oracle时候,提示无法解析指定的连接标识符...
查看>>
webstorm如何编写jsp_WebStorm中怎样运行JSP页面在浏览器中显示
查看>>