美文网首页
LeetCode 319. 灯泡开关

LeetCode 319. 灯泡开关

作者: phantom34 | 来源:发表于2019-08-28 15:18 被阅读0次

题目

319. 灯泡开关

题目描述

初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每 i 个灯泡切换一次开关。 对于第 n 轮,你只切换最后一个灯泡的开关。 找出 n 轮后有多少个亮着的灯泡。
示例:
输入: 3
输出: 1
解释:
初始时, 灯泡状态 [关闭, 关闭, 关闭].
第一轮后, 灯泡状态 [开启, 开启, 开启].
第二轮后, 灯泡状态 [开启, 关闭, 开启].
第三轮后, 灯泡状态 [开启, 关闭, 关闭].
你应该返回 1,因为只有一个灯泡还亮着。

题解

简单数论,对于n个灯泡 进行n轮灯泡开关切换。第 i 轮,每 i 个灯泡切换一次开关。
那么每个灯泡只有在i是x灯泡的因子时才会被切换,而且在会进行n轮切换也就是说x灯泡的所有因子都会被遍历,而对于一个数的因子个数 普遍都是偶数个 也就是n*m=x(n!=m)模式除了平方数会出现n*n=x 也就是说只有平方数是奇数个.那么这道题所求的不就是n以内(包括n)的平方数个数吗,那么对n开个根向下取整就好了

代码

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

结果

image.png

相关文章

  • LeetCode 319. 灯泡开关

    1、题目 319. 灯泡开关 - 力扣(LeetCode) https://leetcode-cn.com/pro...

  • Leetcode-319 灯泡开关

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

  • LeetCode 319. 灯泡开关

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

  • Leetcode【319、672】

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

  • 319. 灯泡开关

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

  • LeetCode | 1375. Bulb Switcher I

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

  • 2019-02-24

    LeetCode 319. Bulb Switcher Description There are n bulbs...

  • 2021-11-15 319. 灯泡开关

    模拟思路解这道题,存在着复杂度高的缺陷,因此在测试用例n=99999时,垮掉了,题解上也说明即使O(n)最终执行用...

  • leetcode--319--灯泡开关

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

  • LeetCode319. 灯泡开关

    1、题目链接 https://leetcode-cn.com/problems/bulb-switcher/ 2、...

网友评论

      本文标题:LeetCode 319. 灯泡开关

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