Algorithm
Problem Name: 672. Bulb Switcher II
There is a room with n
bulbs labeled from 1
to n
that all are turned on initially, and four buttons on the wall. Each of the four buttons has a different functionality where:
- Button 1: Flips the status of all the bulbs.
- Button 2: Flips the status of all the bulbs with even labels (i.e.,
2, 4, ...
). - Button 3: Flips the status of all the bulbs with odd labels (i.e.,
1, 3, ...
). - Button 4: Flips the status of all the bulbs with a label
j = 3k + 1
wherek = 0, 1, 2, ...
(i.e.,1, 4, 7, 10, ...
).
You must make exactly presses
button presses in total. For each press, you may pick any of the four buttons to press.
Given the two integers n
and presses
, return the number of different possible statuses after performing all presses
button presses.
Example 1:
Input: n = 1, presses = 1 Output: 2 Explanation: Status can be: - [off] by pressing button 1 - [on] by pressing button 2
Example 2:
Input: n = 2, presses = 1 Output: 3 Explanation: Status can be: - [off, off] by pressing button 1 - [on, off] by pressing button 2 - [off, on] by pressing button 3
Example 3:
Input: n = 3, presses = 1 Output: 4 Explanation: Status can be: - [off, off, off] by pressing button 1 - [off, on, off] by pressing button 2 - [on, off, on] by pressing button 3 - [off, on, on] by pressing button 4
Constraints:
1 <= n <= 1000
0 <= presses <= 1000
Code Examples
#1 Code Example with Javascript Programming
Code -
Javascript Programming
const flipLights = function (n, m) {
n = Math.min(n, 3)
if (m === 0) return 1
if (m === 1) return n === 1 ? 2 : n === 2 ? 3 : 4
if (m === 2) return n === 1 ? 2 : n === 2 ? 4 : 7
return n === 1 ? 2 : n === 2 ? 4 : 8
}
Copy The Code &
Try With Live Editor
Input
Output
#2 Code Example with Python Programming
Code -
Python Programming
class Solution:
def flipLights(self, n, m):
n = min(n, 3)
return min(1 << n, 1 + m * n)
Copy The Code &
Try With Live Editor
Input
Output