二进制手表–java–枚举法
思路:
可以枚举所有时刻的时分二进制之和,如果得到的结果与传入参数相等,则该时刻符合题目要求,将其时分的字符串表示加入结果集中,枚举完成之后,返回结果集。
代码:
class Solution {
public List<String> readBinaryWatch(int turnedOn) {
List<String> res = new LinkedList<>();
for( int i = 0; i < 12; ++i ){
for( int j = 0; j < 60; ++j ){
if( Integer.bitCount(i) + Integer.bitCount(j) == turnedOn ){
String str = i + ":" + (j < 10 ? "0" + j : j);
res.add(str);
}
}
}
return res;
}
}