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