二進位制手錶頂部有 4 個 led 代表小時(0-11),底部的 6 個 led 代表分鐘(0-59)。
每個 led 代表乙個 0 或 1,最低位在右側。
解題思路:我自己想到的解法是用dfs去搜尋滿足條件的組合,然後看完網友(william)用暴力解法,解法也比較好,這裡都記錄一下。
先看自己的解法。我的解法主要是按照深度優先遍歷走,屬於固定模式,用乙個陣列記錄二進位制手錶中那個位被點亮,當點亮設定個數的led之後,計算這些點亮的點的值,只有符合時鐘在0-11範圍,分鐘在0-59範圍的路徑我們才保留下來。直接看**。
解法一
// dfs, time & space: o(n^2)
class
solution
for(
int i =
4; i <10;
++i)
if(h <=
11&& m <=59)
}for
(int i = start; i <10;
++i)
} vector
readbinarywatch
(int num)
};
解法二的想法主要是對12∗60
12*60
12∗6
0種組合都做試探,只有點亮led個數符合題目要求的才保留下來。
class
solution
return one;
} vector
readbinarywatch
(int num)}}
return res;}}
;
leetcode 401 二進位制手錶
思路一 遞迴回溯 使用乙個長度為10的陣列進行組合編碼,最終輸出時間 思路二 兩重for迴圈分別代表小時和分鐘 class solution for int i index ireadbinarywatch int num class solution return ret 1.bitset bit...
LeetCode 401 二進位制手錶
問題描述 二進位制手錶頂部有 4 個 led 代表小時 0 11 底部的 6 個 led 代表分鐘 0 59 每個 led 代表乙個 0 或 1,最低位在右側。例如,上面的二進位制手錶讀取 3 25 給定乙個非負整數 n 代表當前 led 亮著的數量,返回所有可能的時間。案例 輸入 n 1 返回 1...
leetcode 401 二進位制手錶
401 二進位制手錶 algorithms easy 48.85 likes 73 dislikes 0 total accepted 5.2k total submissions 10.6k testcase example 0 二進位制手錶頂部有 4 個 led 代表小時 0 11 底部的 6 ...