思路第 i 个灯泡最终是否亮取决于它被切换了多少次。第 i 个灯泡会在它的每个约数轮次被切换所以切换次数等于 i 的约数个数。只有完全平方数的约数个数是奇数因此最终亮着的灯泡编号都是完全平方数。所以答案就是 1 ~ n 中完全平方数的个数即 (int) Math.sqrt(n)。Java 实现classSolution{publicintbulbSwitch(intn){return(int)Math.sqrt(n);}}复杂度· 时间复杂度O(1)· 空间复杂度O(1)例如· n 3完全平方数只有 1返回 1· n 4完全平方数有 1, 4返回 2