LeetCode 401 二進位制手錶

2021-10-04 07:11:13 字數 926 閱讀 6710

二進位制手錶頂部有 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 ...