【LeetCode 简单题】88-二进制手表
声明:
今天是第88道题。二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧,给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。以下所有代码经过楼主验证都能在LeetCode上执行成功,代码也是借鉴别人的,在文末会附上参考的博客链接,如果侵犯了博主的相关权益,请联系我删除
(手动比心ღ( ´・ᴗ・` ))
正文
题目:二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。
例如,上面的二进制手表读取 “3:25”。
给定一个非负整数 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”。
解法1。注意根据题意,该手表是12小时制的手表,也就是说上面4个小时的灯不可能全亮,最大也就是1011的情况,所以设置2个变量分别为时h和分m,遍历所有组合的情况,判断条件就是其二进制1的个数相加等于输入的num,代码如下。
- (bin(h)+bin(m)).count('1'):这里2个bin相加是类似于字符串的连接,不是数学上的加法
执行用时: 28 ms, 在Binary Watch的Python提交中击败了95.59% 的用户
class Solution(object):def readBinaryWatch(self, num):""":type num: int:rtype: List[str]"""res = []for h in range(12):for m in range(60):if (bin(h)+bin(m)).count('1') == num:res.append("%d:%02d"%(h,m))return res
解法2。一共10位,范围就是0-1023,所以遍历这1024个数,找到合理的数(小时数小于12,分钟数小于60且满足对应二进制数中1的个数等于num),代码如下。
执行用时: 28 ms, 在Binary Watch的Python提交中击败了95.59% 的用户
class Solution(object):def readBinaryWatch(self, num):""":type num: int:rtype: List[str]"""res = []for i in range(1024):if bin(i).count('1') == num:h, m = i>>6, i&0x3f # 分别取i的高4位即小时位,和i的低6位即分钟位if h < 12 and m < 60:res.append("%d:%02d"%(h,m))return res
结尾
解法1&解法2:https://blog.csdn.net/u012965373/article/details/53317141
【LeetCode 简单题】88-二进制手表相关推荐
- LeetCode简单题之二进制矩阵中的特殊位置
题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...
- LeetCode简单题之二进制表示中质数个计算置位
题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...
- leetcode 简单题合集(Java版)
326. 3的幂 https://leetcode-cn.com/problems/power-of-three/ 题解: class Solution {public boolean isPower ...
- leetcode python3 简单题88. Merge Sorted Array
1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第八十八题 (1)题目 英文: Given two sorted integer a ...
- LeetCode简单题之基于排列构建数组
题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...
- LeetCode简单题之Excel 表中某个范围内的单元格
题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...
- LeetCode简单题之增量元素之间的最大差值
题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...
- LeetCode简单题之设计 Goal 解析器
题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...
- LeetCode简单题之检查两个字符串数组是否相等
题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...
最新文章
- Centos 7最小化系统安装设置IP(ifconfig命令)
- vector机器人 CAN I USE MULTIPLE VECTORS OR DEVICES? 我可以使用多个向量或设备吗?
- 【最新阿里-京东-美团-滴滴-面试题及答案】
- commit与rollback命令
- 不从事编程、学python有用吗-为什么你觉得C语言什么都不能做,学了没用?不可能的...
- android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用
- 【渝粤教育】 广东开放大学 10548_金融学k1_21秋考试
- 老李分享:HTTP session原理及应用 1
- dao generator for php and mysql_mybatis generator 自动生成dao层映射代码
- 如何实现百万TPS?详解JMQ4的存储设计
- Android 布局系列篇
- jQuery使table表格隔行显示不同颜色
- 离散数学杜忠复版答案_离散数学第2版答案
- JavaScript Debugger 原理
- 国内工业软件排行榜、市场份额与主要玩家
- nar神经网络_NAR 神经网络多步和单步预测
- SAP标准功能重复制造计划编制表实现生产排产初步分析
- 程序员过完年第一天上班被公司劝退!得知原因后,网友:被安排了
- 数据库的“读写分离”
- 九章云极DataCanvas公司深度参编《中国金融科技发展报告2021》蓝皮书