319. Bulb Switcher
package LeetCode_319 /** * 319. Bulb Switcher * https://leetcode.com/problems/bulb-switcher/ * * There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. * On the third round, you toggle every third bulb (turning on if it's off or turning off if it's on). * For the i-th round, you toggle every i bulb. For the n-th round, you only toggle the last bulb. * Find how many bulbs are on after n rounds. * Example: Input: 3 Output: 1 Explanation: At first, the three bulbs are [off, off, off]. After first round, the three bulbs are [on, on, on]. After second round, the three bulbs are [on, off, on]. After third round, the three bulbs are [on, off, off]. So you should return 1, because there is only one bulb is on. * */ class Solution { /* * solution: Math, Time complexity:O(sqrt(n)), Space complexity:O(1) * init: X X X X X first: √ √ √ √ √ second: √ X √ X √ third: √ X X X √ fourth: √ X X √ √ fifth: √ X X √ X all squared bulbs will be lit * */ fun bulbSwitch(n: Int): Int { var result = 1 while (result * result <= n) { result++ } return result - 1 } }