12345678910111213141516171819202122 |
- func flipLights(n int, m int) int {
- // 1. Flip all;
- // 2. Flip odd;
- // 3. Flip even;
- // 4. Flip 3k + 1.
- // So, 1 + 2 -> 3, we have 8 states at most:
- // On; 1; 2; 3; 4; 1 + 4; 2 + 4; 3 + 4.
- // When 2 < n and 3 <= m, we can have them all.
- switch {
- case m == 0:
- return 1
- case n == 1:
- return 2
- case n == 2 && m == 1:
- return 3
- case n == 2 || m == 1:
- return 4
- case m == 2:
- return 7
- }
- return 8
- }
|