美文网首页
leetcode--319--灯泡开关

leetcode--319--灯泡开关

作者: minningl | 来源:发表于2020-08-18 16:56 被阅读0次

题目:
初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每 i 个灯泡切换一次开关。 对于第 n 轮,你只切换最后一个灯泡的开关。 找出 n 轮后有多少个亮着的灯泡。

示例:

输入: 3
输出: 1 

解释:

初始时, 灯泡状态 [关闭, 关闭, 关闭].
第一轮后, 灯泡状态 [开启, 开启, 开启].
第二轮后, 灯泡状态 [开启, 关闭, 开启].
第三轮后, 灯泡状态 [开启, 关闭, 关闭]. 

你应该返回 1,因为只有一个灯泡还亮着。

链接:https://leetcode-cn.com/problems/bulb-switcher

思路:
1、对于第P个灯泡,引起其状态变化的只有其正因子词操作时会发生变化。如P=5,则只有在第1次、第5次会发生状态翻转
2、对于第P个灯泡,有且在于P是完全平方数时,才会有奇数次因子数。如P=4,则P在1、2、4次会发生翻转
3、因此本题转换为求n个灯泡中的完全平方数的个数,即int(sqrt(n))

Python代码:

class Solution(object):
    def bulbSwitch(self, n):
        """
        :type n: int
        :rtype: int
        """
        return int(sqrt(n))

C++代码:

class Solution {
public:
    int bulbSwitch(int n) {
        return (int)sqrt(n);
    }
};

相关文章

  • leetcode--319--灯泡开关

    题目:初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,...

  • 设计模式 · 开关和灯泡的问题

    一、 假设我们现在有一个开关(打开和关闭)、还有一个灯泡(发光和不发光),开关控制灯泡,当开关打开后,灯泡亮。思考...

  • 灯泡开关

    灯泡开关 在这个问题中,我们能够首先想到的就是使用暴力模拟。根据模拟可以直接模拟每一步的操作。但是这会发生TLE错...

  • 灯泡开关

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/bulb-s...

  • 简单电路图

    原理:在灯泡的两端加上一定的电压,灯泡就可以发光。 材料 灯泡,底座,电池,导线,开关。 图片

  • Leetcode【319、672】

    问题描述:【Math】319. Bulb Switcher 解题思路: 灯泡开关。初始时有 n 个灯泡关闭,第 i...

  • 开关、电线与灯泡

    晚上,主人回到家,”啪”的一声打开了开关,有了电线的帮助,灯泡马上就亮了。就这样,开关、电线与灯泡,三个小伙伴一起...

  • LeetCode | 1375. Bulb Switcher I

    LeetCode 1375. Bulb Switcher III灯泡开关 III【Medium】【Python】【...

  • LeetCode 319. 灯泡开关

    题目 319. 灯泡开关 题目描述 初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个...

  • Leetcode-319 灯泡开关

    319. 灯泡开关[https://leetcode-cn.com/problems/bulb-switcher/...

网友评论

      本文标题:leetcode--319--灯泡开关

      本文链接:https://www.haomeiwen.com/subject/dzskjktx.html