首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:二进制手表

#yyds干货盘点# LeetCode程序员面试金典:二进制手表

时间:2024-01-21 23:31:43浏览次数:57  
标签:yyds 00 LED 二进制 金典 int turnedOn ans LeetCode

题目

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


例如,下面的二进制手表读取 "4:51" 。



给你一个整数 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

输出:[]

代码实现

class Solution {
    public List<String> readBinaryWatch(int turnedOn) {
        List<String> ans = new ArrayList<String>();
        for (int h = 0; h < 12; ++h) {
            for (int m = 0; m < 60; ++m) {
                if (Integer.bitCount(h) + Integer.bitCount(m) == turnedOn) {
                    ans.add(h + ":" + (m < 10 ? "0" : "") + m);
                }
            }
        }
        return ans;
    }
}


标签:yyds,00,LED,二进制,金典,int,turnedOn,ans,LeetCode
From: https://blog.51cto.com/u_13321676/9355924

相关文章

  • 【LeetCode】704. 二分查找
    题目:704.二分查找解题思路思路:给定一个nums数组,注意数组是升序排列的;那么,找到当前target元素是否存在于数组之中,可采用二分法查找注意:此处定义该数组区间定义:【左闭右闭】/【左闭右开】使用left指向数组头,right指针指向数组尾,mid用于计算二分查找的位置,mid=left+(ri......
  • 【LeetCode】27. 移除元素
    题目:27.移除元素解题思路给定一个数组,以及一个需要删除的值;要求在O(1)的空间复杂度中完成可考虑采用快慢指针的方式,left用于记录当前需要进行替换的元素,right指针用于遍历整个数组当right指针所指的值是待删除元素时,那么right右移,left不动即可若不是,那么将right......
  • Leetcode 066 加一
    https://leetcode.cn/problems/plus-one/description/给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。示例1:输入:digits=[1,2,3]输出......
  • 最少交换次数 置换环 LeetCode 2471. 逐层排序二叉树所需的最少操作数目
    voidMain(){ varroot=newTreeNode(1) { left=newTreeNode(3) { left=newTreeNode(7), right=newTreeNode(6) }, right=newTreeNode(2) { left=newTreeNode(5), right=newTreeNode(4) } }; varr=newSolution().Minimu......
  • leetcode 169(摩尔投票)
    Problem:169.多数元素目录思路解题方法复杂度Code思路这里选择采用摩尔投票的方式进行计算众数,这里众数的定义是超过一半的数,假设众数的票为+1,负数的票为-1,则不难得到:当目前的票数为0时,后面的众数仍然是整个数组的众数.根据这个性质设计算法所有数的票面值和为......
  • leetcode 80
    题目描述删除有序数组中的重复项II给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。说明:为什么返回数值是整......
  • Leetcode 26 删除数组重复项
    题目描述给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保你的题解可以被通过:更改数......
  • datawhale-leetcode打卡:001-012题
    这次这十二个题目属于是极限肝出来的,有两个参考了一下题解,还是很有意思。我会按照我个人的感觉去写这个东西。螺旋矩阵(leetcode054)这个题目比较恶心的就是跑圈的过程怎么描述。首先,顺时针一圈下来是先从左到右,顶到最右边i<m,好再往下,顶到最下边i<n,好现在i--往回排,最后j--走完一......
  • LeetCode 第 121 场双周赛
    LeetCode第121场双周赛大于等于顺序前缀和的最小缺失整数代码:classSolution{public:intmissingInteger(vector<int>&nums){intn=nums.size();set<int>s;for(autox:nums){s.insert(x);}......
  • leetcode 17.电话号码的字母组合
    leetcode17.电话号码的字母组合第十七题:电话号码的字母组合1.回溯:首先使用哈希表存储每个数字对应的所有可能的字母,然后进行回溯操作。回溯过程中维护一个字符串,表示已有的字母排列(如果未遍历完电话号码的所有数字,则已有的字母排列是不完整的)。该字符串初始为空。每次取电话......