我觉得本题出得并不好,就是道纯粹的数学问题:

    对于一个普通数来说,比如6
    6的 factor 有1, 2, 3, 6,是成对出现的,比如319. Bulb Switcher - 图1, 319. Bulb Switcher - 图2
    5,7亦是如此。

    只有完全平方数,有奇数个factor,比如对于9有:1,3,9 三个数
    所以我们其实是要找完全平方数的个数

    • 时间复杂度:319. Bulb Switcher - 图3
    • 空间复杂度:319. Bulb Switcher - 图4

    代码如下所示:

    1. class Solution {
    2. public int bulbSwitch(int n) {
    3. return (int)Math.sqrt(n);
    4. }
    5. }