Leetcode:319.燈泡開關
初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n 輪,你只切換最後一個燈泡的開關。 找出 n 輪後有多少個亮著的燈泡。
示例:
輸入: 3 輸出: 1 解釋: 初始時, 燈泡狀態 [關閉, 關閉, 關閉]. 第一輪後, 燈泡狀態 [開啟, 開啟, 開啟]. 第二輪後, 燈泡狀態 [開啟, 關閉, 開啟]. 第三輪後, 燈泡狀態 [開啟, 關閉, 關閉]. 你應該返回 1,因為只有一個燈泡還亮著。
解題思路:
數學題。假設一開始所有燈泡都是滅的。對於一個正整數n,n=a*b(其中a<=b)。假設有k組這樣的(a,b)。假設當n不是完全平方數時,n被切換的次數是2k,偶數次,由於初始狀態是滅的,所以位置n處的燈泡是滅的;當n是完全平方數是必然有一個組合(a,b)其中a=b,使得總共有2k-1個數,奇數次,由於初始狀態是滅的,所以位置n的燈泡是亮的。總而言之,就是第k^2的位置燈泡必然是亮的。(k=1,2,...,int(sqrt(n)))。
相關推薦
Leetcode:319.燈泡開關
初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n
LeetCode 319. 燈泡開關
遞迴問題 題目介紹 初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪
Leetcode 319.燈泡開關
燈泡開關 初始時有 n 個燈泡關閉。第 1 輪,你開啟所有的燈泡。第 2 輪,每兩個燈泡你關閉一次。第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。對於第 n 輪,你只切換最後
【LeetCode】 319. 燈泡開關
遞迴問題 題目介紹 初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n 輪,你只切換最後一
319. 燈泡開關(java)
文章目錄 解法一(超時) 思路 解法二 解法一(超時) 解法一會超時,但是這裡要講一下思路為正確的解法做鋪墊。 思路 當我們自己寫幾個測試用例會發現每次需要判斷只有最後一個值,也就是n的值,這個位上的燈泡到
[LeetCode]319. Bulb Switcher燈泡開關
class leet math int nbsp 一個 math.sqrt 因子 mat 智商壓制的一道題 這個題有個數學定理: 一般數(非完全平方數)的因子有偶數個 完全平凡數的因子有奇數個 開開關的時候,第i個燈每到它的因子一輪的時候就會撥動一下,也就是每個燈撥動的次數
[Leetcode] 第319題 燈泡開關
一、題目描述 初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n&nb
319 Bulb Switcher 燈泡開關
rip .cn problems highlight leetcode 一次 esc tps ++ 初始時有 n 個燈泡關閉。 第 1 輪,你打開所有的燈泡。 第 2 輪,每兩個燈泡切換一次開關。 第 3 輪,每三個燈泡切換一次開關(如果關閉,則打開,如果打開則關閉)。對於
LeetCode 319. Bulb Switcher
題解 自然地會想到模擬開關的方法,開一個數組記錄開關情況,最後奇數者亮。 例如 int bulbSwitch(int n) { vector<int> cot(n+1,1); int res=0; if(n==1) re
672. 燈泡開關 Ⅱ
現有一個房間,牆上掛有 n 只已經開啟的燈泡和 4 個按鈕。在進行了 m 次未知操作後,你需要返回這 n 只燈泡可能有多少種不同的狀態。 假設這 n 只燈泡被編號為 [1, 2, 3 ..., n],這 4 個按鈕的
LeetCode319. 燈泡開關
初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n 輪,你只切換最後一個燈泡的開關。 找出 n 輪後有多少個
Bulb Switcher 燈泡開關
初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n 輪,你只切換最後一個燈泡的開關。 找出 n 輪後有多少個
[leetcode]319. Bulb Switcher
[leetcode]319. Bulb Switcher Analysis 今天被微博上的孫藝興bot笑死,哈哈哈哈哈—— [每天刷題並不難0.0] There are n bulbs that are initially off. You first tur
[Swift]LeetCode319. 燈泡開關 | Bulb Switcher
There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. On the third round, you toggle e
演算法題|-燈泡開關問題
問題描述: 有編號1~100個燈泡,起初所有的燈都是滅的。有100個同學來按燈泡開關,如果燈是亮的,那麼按過開關之後,燈會滅掉。如果燈是滅的,按過開關之後燈會亮。現在開始按開關。第1個同學,把所有的燈泡開關都按一次(按開關燈的編號: 1,2,3,......100)。第2個同學,隔一個燈按一次(按開關燈的編號
leetcode 319
pre 一輪 col 奇數 alt color ima 題意 n) 題意:n個燈泡,第一輪全部打開;第二輪每隔2k(k=0,1,...n)個(偶數2,4,6,8.....)關閉;第三輪3k(3,6,9,12,....)個打開;... 以此類推 所以當操作為奇數個時,燈
JQuery應用例項學習 —— 12 燈泡的開關切換
jQuery實現燈泡的開關切換 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF
[LeetCode]160.Intersection of Two Linked Lists
col style return tro nod sts diff original you Intersection of Two Linked Lists Write a program to find the node at which the intersectio
[LeetCode] Reshape the Matrix 矩陣重塑
ren ati num 我們 資料 call posit tar led In MATLAB, there is a very useful function called ‘reshape‘, which can reshape a matrix into a ne
leetcode題解 || Roman to Integer問題
leet only top xiv har convert 擁有 pro think problem: Given a roman numeral, convert it to an integer. Input is guaranteed to be within