LeetCode 1529 燈泡開關 IV

2021-10-19 11:48:04 字數 758 閱讀 2096

題意:

房間中有 n 個燈泡,編號從 0 到 n-

1 ,自左向右排成一行。最開始的時候,所有的燈泡都是 關 著的。

請你設法使得燈泡的開關狀態和 target 描述的狀態一致,

其中 target[i] 等於 1 第 i 個燈泡是開著的,等於 0 意味著第 i 個燈是關著的。

有乙個開關可以用於翻轉燈泡的狀態,翻轉操作定義如下:

選擇當前配置下的任意乙個燈泡(下標為 i )

翻轉下標從 i 到 n-

1 的每個燈泡

翻轉時,如果燈泡的狀態為 0 就變為 1,為 1 就變為 0 。

返回達成 target 描述的狀態所需的 最少 翻轉次數。

資料範圍:

1<= target.length <=10^

5target[i]

=='0' 或者 target[i]

=='1'

解法:
操作是翻轉[i,n-1]

,而i之前的不會被翻轉,

因此需要從左往右考慮.

從左到右遍歷,開乙個變數f記錄i左邊翻轉的次數%2,

那麼i的實際亮滅狀態就是f,如果f!=s[i]

,那麼i需要翻轉,否則不需要.

code:
const

int maxm=

1e5+5;

class

solution

}return ans;}}

;

1529 燈泡開關 IV

題目描述 房間中有 n 個燈泡,編號從 0 到 n 1 自左向右排成一行。最開始的時候,所有的燈泡都是 關 著的。請你設法使得燈泡的開關狀態和 target 描述的狀態一致,其中 target i 等於 1 第 i 個燈泡是開著的,等於 0 意味著第 i 個燈是關著的。有乙個開關可以用於翻轉燈泡的狀...

Leetcode 319 燈泡開關

初始時有 n 個燈泡關閉。第 1 輪,你開啟所有的燈泡。第 2 輪,每兩個燈泡你關閉一次。第 3 輪,每三個燈泡切換一次開關 如果關閉則開啟,如果開啟則關閉 第 i 輪,每 i 個燈泡切換一次開關。對於第 n 輪,你只切換最後乙個燈泡的開關。找出 n 輪後有多少個亮著的燈泡。示例 輸入 3輸出 1解...

LeetCode(319 燈泡開關)

如題 最直觀的做法就是模擬每次開關操作,用乙個int陣列儲存狀態,每次去判斷對應的位置更改對應index的值,但是很顯然這是指數即的計算。那麼換個方向,我們就以每個位置會進行開合的次數來判斷,很顯然開合奇數次則為開啟,否則為關閉。那麼開合次數是由上面決定的,間隔n不就是對應整除n麼,那麼對應的就是再...