Binary Watch

来源:互联网 发布:我的手机淘宝没有社区 编辑:程序博客网 时间:2024/05/17 03:40

import java.util.LinkedList;import java.util.List;/* * 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. *  * 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 = 1Return: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"] * */public class Solution {public static void main(String[] args) {// TODO Auto-generated method stub}public List<String> readBinaryWatch(int num) {        List<String> res = new LinkedList<>();        for(int h = 0; h<12; ++h)        {        for(int m = 0; m<60; ++m)        {        //Integer.bitCount(int i)返回的是i的二进制中1的个数        if((Integer.bitCount(h))+(Integer.bitCount(m)) == num)        res.add(String.format("%d:%02d", h,m));        }        }        return res;    }}


bitCount方法——获取二进制补码中1位的数量

bitCount方法返回指定int值的二进制补码表示形式的1位的数量。

0 0
原创粉丝点击