Бинарные часы имеют 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%
Спасибо за чтение. Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать в разделе комментариев. Я обязательно отреагирую на это.