思路:对第i个灯泡进行分析,只有当轮数为其因子时,该灯泡才会切换。若i有k个因子,则被切换k次,由于初始为关闭的状态,所以当k为奇数时,灯泡亮。进一步分析,只有平方数的因子个数为奇数,所以题目转为求1~n中的平方数的个数。
代码:
class Solution {
public int bulbSwitch(int n) {
return (int)Math.sqrt(n);
}
}
本文介绍了如何解决灯泡开关问题,通过分析得出只有平方数的因子个数为奇数时灯泡会亮。代码展示了简单的解决方案,即返回平方根作为亮灯的数量,揭示了数学在算法中的应用。
思路:对第i个灯泡进行分析,只有当轮数为其因子时,该灯泡才会切换。若i有k个因子,则被切换k次,由于初始为关闭的状态,所以当k为奇数时,灯泡亮。进一步分析,只有平方数的因子个数为奇数,所以题目转为求1~n中的平方数的个数。
代码:
class Solution {
public int bulbSwitch(int n) {
return (int)Math.sqrt(n);
}
}
300
4299

被折叠的 条评论
为什么被折叠?