[leetcode] problem 672 – bulb switcher ii

There is a room with n lights which are turned on initially and 4 buttons on the wall. After performing exactly m unknown operations towards buttons, you need to return how many different kinds of status of the n lights could be.

Suppose n lights are labeled as number [1, 2, 3 …, n], function of these 4 buttons are given below:

  1. Flip all the lights.
  2. Flip lights with even numbers.
  3. Flip lights with odd numbers.
  4. Flip lights with (3k + 1) numbers, k = 0, 1, 2, …

Example

No.1

Input: n = 1, m = 1.

Output: 2

Explanation: Status can be: [on], [off]

No.2

Input: n = 2, m = 1.

Output: 3

Explanation: Status can be: [on, off], [off, on], [off, off]

No.3

Input: n = 3, m = 1.

Output: 4

Explanation: Status can be: [off, on, off], [on, off, on], [off, off, off], [off, on, on].

Note

n and m both fit in range [0, 1000].

Code

1
2
3
4
5
6
7
8
9
10
11
12
public int (int n, int m) {
if (m == 0)
return 1;
else if (n == 1)
return 2;
else if (n == 2)
return m == 1 ? 3 : 4;
else if (m == 1)
return 4;
else
return m == 2 ? 7 : 8;
}