401. Binary Watch*
2017-01-14 00:03
344 查看
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.
![](https://upload.wikimedia.org/wikipedia/commons/8/8b/Binary_clock_samui_moon.jpg)
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:
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 List<String> readBinaryWatch(int num) {
List<String> times = new ArrayList<>();
for(int h=0;h<12;h++){
for(int m =0;m<60;m++){
if(Integer.bitCount(h*64+m)==num)
times.add(String.format("%d:%02d",h,m));
}
}
return times;
}总结:列举法
h*64是为了左移六位
Integer.bitCount是计算num中二进制补码所含1的数量
%d%02d, 不一定要列举所有情况,可以选择格式化输出
Each LED represents a zero or one, with the least significant bit on the right.
![](https://upload.wikimedia.org/wikipedia/commons/8/8b/Binary_clock_samui_moon.jpg)
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 = 1 Return: ["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 List<String> readBinaryWatch(int num) {
List<String> times = new ArrayList<>();
for(int h=0;h<12;h++){
for(int m =0;m<60;m++){
if(Integer.bitCount(h*64+m)==num)
times.add(String.format("%d:%02d",h,m));
}
}
return times;
}总结:列举法
h*64是为了左移六位
Integer.bitCount是计算num中二进制补码所含1的数量
%d%02d, 不一定要列举所有情况,可以选择格式化输出
相关文章推荐
- [leetcode][401]. Binary Watch
- leetcode oj java Binary Watch
- Binary Watch
- #1350 : Binary Watch(dfs)
- Hihocoder1350-Binary Watch
- LeetCode Binary Watch
- 回溯法和bitset Binary Watch
- binary-watch
- watch embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.
- Binary Tree Inorder Traversal
- [C++]LeetCode: 122 Validate Binary Search Tree (是否是合法BST树)
- Leetcode 199 Binary Tree Right Side View 二叉树右视图
- AngularJS: $watch() , $digest() and $apply()
- DFS:104. Maximum Depth of Binary Tree
- leetcode JAVA Construct Binary Tree from Preorder and Inorder Traversal 难度系数3 3.37
- [LeetCode] Binary Tree Upside Down的三种解法
- Visual Studio2010: the specified file is an unrecognized or unsupported binary format
- Medium 107题 Binary Tree Level Order Traversal II
- 详解关于springboot-actuator监控的401无权限访问
- Balanced Binary Tree