(leetcode)401. 二进制手表2021/6/21

401. 二进制手表 javascript

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

例如,下面的二进制手表读取 “3:25” 。
在这里插入图片描述给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。

小时不会以零开头:

例如,“01:00” 是无效的时间,正确的写法应该是 “1:00” 。
分钟必须由两位数组成,可能会以零开头:

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

示例

输入:turnedOn = 1
输出:["0:01","0:02","0:04","0:08","0:16","0:32","1:00","2:00","4:00","8:00"]


输入:turnedOn = 9
输出:[]

代码1 暴力破解

var readBinaryWatch = function(turnedOn) {
    // 共有10个灯
    var result = []
    var hours = [["0"], ["1", "2", "4", "8"], ["3", "5", "6", "9", "10"], ["7", "11"]]
    var minutes = [
        ["00"],
        ["01", "02", "04", "08", "16", "32"],
        ["03", "05", "06", "09", "10", "12", "17", "18", "20", "24", "33", "34", "36", "40", "48"],
        ["07", "11", "13", "14", "19", "21", "22", "25", "26", "28", "35", "37", "38", "41", "42", "44", "49","50", "52", "56"],
        ["15", "23", "27", "29", "30", "39", "43", "45", "46", "51", "53", "54", "57", "58"],
        ["31", "47", "55", "59"]
    ]
    for (let i = 0; i <= Math.min(3, turnedOn); i++) {
        if (turnedOn - i > 5) continue;
        const hstr = hours[i];
        const mstr = minutes[turnedOn - i];
        for (let j = 0; j < hstr.length; j++) {
            for (let k = 0; k < mstr.length; k++) {
                result.push(hstr[j] + ":" + mstr[k]);
            }
        }
    }
    return result
};

在这里插入图片描述

学艺不精,还需努力💪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值