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 where k = 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

x
+
cmd
n = 1, presses = 1

Output

x
+
cmd
2

#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

x
+
cmd
n = 1, presses = 1

Output

x
+
cmd
2
Advertisements

Demonstration


Previous
#671 Leetcode Second Minimum Node In a Binary Tree Solution in C, C++, Java, JavaScript, Python, C# Leetcode
Next
#673 Leetcode Number of Longest Increasing Subsequence Solution in C, C++, Java, JavaScript, Python, C# Leetcode