319. Bulb Switcher
有 n 个灯泡,执行 n 个回合以下操作:
假设是第 i 个回合,每隔 i 个灯泡切换灯泡开关(开->关 / 关->开)
问最后有几颗灯泡亮着
Example 1:
Input: n = 3
Output: 1
第一轮: 亮 / 亮 / 亮
第二轮: 亮 / 不亮 / 亮
第三轮: 亮 / 不亮 / 不亮
Example 2:
Input: n = 0
Output: 0
Example 3:
Input: n = 4
Output: 2
第一轮: 亮 / 亮 / 亮 / 亮 #按1234
第二轮: 亮 / 不亮 / 亮 / 不亮 #按24
第三轮: 亮 / 不亮 / 不亮 / 不亮 #按3
第四轮: 亮 / 不亮 / 不亮 / 亮 #按4
思路:
第i个灯泡亮着的条件 -> i 有奇数个因子
平方数才会有奇数个因子 所以找小于等于 n 的平方数个数就好
直接开根号就是答案了
下系下井= = 干!
class Solution:
def bulbSwitch(self, n: int) -> int:
return int(sqrt(n))