LeetCode in Kotlin

672. Bulb Switcher II

Medium

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:

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:

Example 2:

Input: n = 2, presses = 1

Output: 3

Explanation: Status can be:

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:

Solution

class Solution {
    fun flipLights(n: Int, m: Int): Int {
        return if (n == 1 && m > 0) {
            2
        } else if (n == 2 && m == 1) {
            3
        } else if (n > 2 && m == 1 || n == 2 && m > 1) {
            4
        } else if (n > 2 && m == 2) {
            7
        } else if (n > 2 && m > 2) {
            8
        } else {
            1
        }
    }
}