package com.fishercoder.solutions;

import java.util.ArrayList;
import java.util.List;

/**
 * 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.


 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".
 */
public class _401 {

    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 * 60 + m) == num) {
                    times.add(String.format("%d:%02d", h, m));//%02 means to pad this two-digit decimal number on the left with zeroes
                }
            }
        }
        return times;
    }

}

@@ -85,16 +85,40 @@
 t;%0A%0A/**%0A
+ * 401. Binary Watch%0A *%0A
  * A bin
@@ -242,17 +242,18 @@
 (0-59).%0A
-%0A
+ *
  Each LE
@@ -326,17 +326,16 @@
 right.%0A%0A
-%0A
  For exa
@@ -935,16 +935,56 @@
 _401 %7B%0A%0A
+    public static class Solution1 %7B%0A    
     publ
@@ -1034,16 +1034,20 @@
         
+   
+ 
 List%3CStr
@@ -1078,32 +1078,36 @@
 st%3C%3E();%0A        
+    
 for (int h = 0; 
@@ -1125,32 +1125,36 @@
 ) %7B%0A            
+  
+  
 for (int m = 0; 
@@ -1164,24 +1164,28 @@
  60; m++) %7B%0A
+    
             
@@ -1251,16 +1251,20 @@
         
+ 
+   
 times.ad
@@ -1292,16 +1292,44 @@
 02d%22, h,
+%0A                           
  m));//%25
@@ -1406,34 +1406,42 @@
                 
-%7D%0A
+    %7D%0A    
             %7D%0A  
@@ -1438,32 +1438,36 @@
       %7D%0A        
+    
 %7D%0A        return
@@ -1460,16 +1460,20 @@
         
+ 
+   
 return t
@@ -1482,13 +1482,22 @@
 es;%0A    
+    %7D%0A    
 %7D
-%0A
 %0A%7D%0A

refactor 401