There is a room with n
bulbs, numbered from 1
to n
, arranged in a row from left to right. Initially, all the bulbs are turned off. You have a remote control that can perform exactly m
operations, each of which is one of the following:
2
, 4
, 6
, …).1
, 3
, 5
, …).3k + 1
(i.e., bulbs 1
, 4
, 7
, …).Return the number of different possible states of the bulbs after performing m
operations.
Example 1:
Input: n = 1, m = 1
Output: 2
Explanation:
Initially, there is only one bulb. After performing one operation, there are only two possible states: turn on or off.
Example 2:
Input: n = 2, m = 1
Output: 3
Explanation:
Initially, there are two bulbs. After one operation, three possible states are: [on, off], [off, on], and [on, on].
Example 3:
Input: n = 3, m = 1
Output: 4
n
and m
?1 <= n <= 1000
and 0 <= m <= 1000
?The key insight here is to recognize the patterns formed by the operations. For instance:
3k + 1
For smaller values of n
and m
, the problem can essentially be enumerated and the results pre-determined based on combinations of these operations. Given constraints typically found in interview settings, we can summarize this:
We’ll use a set to record possible states and then perform the operations sequentially, considering special scenarios for n
(like n=1
or n=2
).
Here’s the Python code to implement this:
def flipLights(n: int, m: int) -> int:
# When no operation is performed
if m == 0:
return 1
# When the number of bulbs is 1
if n == 1:
return 2 if m > 0 else 1
# When the number of bulbs is 2
if n == 2:
if m == 1:
return 3
else:
return 4
# For general case when n >= 3
if m == 1:
return 4
elif m == 2:
return 7
else:
return 8
# Test with example cases
print(flipLights(1, 1)) # Expected output: 2
print(flipLights(2, 1)) # Expected output: 3
print(flipLights(3, 1)) # Expected output: 4
n = 1
, we have 2 states: [on]
or [off]
.n = 2
and m = 1
, we can achieve 3 distinct configurations.m
and n = 2
, 4 configurations emerge.n >= 3
, based on m
, configurations grow like 4, 7, or 8 (placed within constraints due to operation combinatory limits).The time complexity is O(1) due to the constrained size of n
and predictable number of operation combinations.
Got blindsided by a question you didn’t expect?
Spend too much time studying?
Or simply don’t have the time to go over all 3000 questions?