美文网首页
401. Binary Watch

401. Binary Watch

作者: Jeanz | 来源:发表于2018-01-04 12:46 被阅读0次

    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.

    image

    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 = 1
    Return: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"]
    

    Note:

    • The order of output does not matter.
    • The hour must not contain a leading zero, for example "01:00" is not valid, it should be "1:00".
    • The minute must be consist of two digits and may contain a leading zero, for example "10:2" is not valid, it should be "10:02".

    一刷
    题解:
    最简单的做法:00:00-11:59遍历,然后用Integer.bitCount来计算满足要求的时间

    class Solution {
        public List<String> readBinaryWatch(int num) {
            List<String> times = new ArrayList<>();
            for(int h=0; h<12; h++){
                for(int m = 0; m<60; m++){
                    if((Integer.bitCount(h) + Integer.bitCount(m)) == num){
                        if(m<10){
                            times.add(String.format("%d:0%d",h,m));
                        }else{
                            times.add(String.format("%d:%d",h,m));
                        }
                        
                    }
                }
            }
            return times;
        }
    }
    

    相关文章

      网友评论

          本文标题:401. Binary Watch

          本文链接:https://www.haomeiwen.com/subject/cvxrnxtx.html