Бинарные часы имеют 4 светодиода вверху, обозначающие часы (0–11), и 6 светодиодов внизу, обозначающие минуты (0–59). Каждый светодиод представляет ноль или единицу, причем младший значащий бит находится справа.

  • Например, приведенные ниже бинарные часы читаются как "4:51".

Учитывая целое число turnedOn, которое представляет количество светодиодов, которые в данный момент включены (игнорируя PM), верните все возможные времена, которые часы могли отображать. Вы можете вернуть ответ в любом порядке.

Час не должен содержать начальный ноль.

  • Например, "01:00" недействителен. Должно быть "1:00".

Минуты должны состоять из двух цифр и могут содержать начальный ноль.

  • Например, "10:2" недействителен. Должно быть "10:02".

Пример 1:

Input: turnedOn = 1
Output: ["0:01","0:02","0:04","0:08","0:16","0:32","1:00","2:00","4:00","8:00"]

Пример 2:

Input: turnedOn = 9
Output: []

Ограничения:

  • 0 <= turnedOn <= 10

РЕШЕНИЕ:

class Solution {
    public List<String> readBinaryWatch(int turnedOn) {

//Create a list of string to store answers
        List<String> ans = new ArrayList<>();

//Start running loop to check for the hours
        for(int hour = 0; hour < 12; hour++){

//Start running loop to check the number of bits in minutes
            for(int min = 0; min < 60; min++){

//If the number of bits of hour and minute is equal to turnedOn then
//add that time in our list
                if(Integer.bitCount(hour) + Integer.bitCount(min) == turnedOn){
                    String newTime = hour + ":";

//If min is a single digit number, let say is 4 then, add a 0 before it
                if(min < 10){
                    newTime += 0;
                }
                
                newTime += min;

//add that time in our ans.
                ans.add(newTime);
                }
               
            }
        }

        return ans;
    }
}

Время работы10 мс

Удары

77.83%

Память41,1 МБ

Удары

93.10%

Спасибо за чтение. Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать в разделе комментариев. Я обязательно отреагирую на это.