博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 401. 二进制手表
阅读量:2058 次
发布时间:2019-04-29

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

题目

二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。

例如,下面的二进制手表读取 “3:25” 。

给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。

小时不会以零开头:

例如,“01:00” 是无效的时间,正确的写法应该是 “1:00” 。

分钟必须由两位数组成,可能会以零开头:

例如,“10:2” 是无效的时间,正确的写法应该是 “10:02” 。

示例 1:

输入:turnedOn = 1

输出:[“0:01”,“0:02”,“0:04”,“0:08”,“0:16”,“0:32”,“1:00”,“2:00”,“4:00”,“8:00”]
示例 2:

输入:turnedOn = 9

输出:[]

解释:

0 <= turnedOn <= 10

解题思路

位运算

代码

class Solution {
public List
readBinaryWatch(int num) {
List
res = new ArrayList<>(); for (int i = 0; i < 12; i++) {
for (int j = 0; j < 60; j++) {
int cnt = Integer.bitCount(i) + Integer.bitCount(j); if (cnt == num) {
res.add(String.format("%d:%02d", i, j)); // StringBuilder sb = new StringBuilder(); // sb.append(i).append(':'); // if (j < 10) {
// sb.append('0'); // } // sb.append(j); // res.add(sb.toString()); } } } return res; }}

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

你可能感兴趣的文章
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>