美文网首页
672. 灯泡开关(Python)

672. 灯泡开关(Python)

作者: 玖月晴 | 来源:发表于2020-11-25 10:01 被阅读0次

题目

难度:★★★☆☆
类型:数组
方法:数学

力扣链接请移步本题传送门
更多力扣中等题的解决方案请移步力扣中等题目录

现有一个房间,墙上挂有 n 只已经打开的灯泡和 4 个按钮。在进行了 m 次未知操作后,你需要返回这 n 只灯泡可能有多少种不同的状态。

假设这 n 只灯泡被编号为 [1, 2, 3 ..., n],这 4 个按钮的功能如下:

将所有灯泡的状态反转(即开变为关,关变为开)
将编号为偶数的灯泡的状态反转
将编号为奇数的灯泡的状态反转
将编号为 3k+1 的灯泡的状态反转(k = 0, 1, 2, ...)

示例 1:

输入: n = 1, m = 1.
输出: 2
说明: 状态为: [开], [关]

示例 2:

输入: n = 2, m = 1.
输出: 3
说明: 状态为: [开, 关], [关, 开], [关, 关]

示例 3:

输入: n = 3, m = 1.
输出: 4
说明: 状态为: [关, 开, 关], [开, 关, 开], [关, 关, 关], [关, 开, 开].
注意: n 和 m 都属于 [0, 1000].

解答

这道题官方的解答已经比较的清楚了,首先,每三个灯为一个单位,所有单位的状态都是完全一样的,因此,这道题实际上只研究前三个灯就够了。

当动作执行0次:三个灯只有[1,1,1]状态,即全亮;
当执行任意动作1次:三个灯有[0,0,0], [0,1,0], [1,0,1],[0,1,1]四种可能状态;
当执行任意动作2次,三个灯有除[0,1,1]之外的所有7种可能;
当执行任意动作3次,三个灯可以取到所有8种可能。

这里注意只有两个或者一个灯也就是n<3的情况,需要特殊对待。

class Solution(object):
    def flipLights(self, n, m):
        n = min(n, 3)
        if m == 0:
            return 1
        if m == 1:
            return [2, 3, 4][n-1]
        if m == 2:
            return [2, 4, 7][n-1]
        return [2, 4, 8][n-1]

如有疑问或建议,欢迎评论区留言~

有关更多力扣中等题的python解决方案,请移步力扣中等题解析

相关文章

  • 672. 灯泡开关(Python)

    题目 难度:★★★☆☆类型:数组方法:数学 力扣链接请移步本题传送门[https://leetcode-cn.co...

  • LeetCode | 1375. Bulb Switcher I

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

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

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

  • 灯泡开关

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

  • 灯泡开关

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

  • 简单电路图

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

  • Leetcode【319、672】

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

  • 开关、电线与灯泡

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

  • LeetCode 319. 灯泡开关

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

  • Leetcode-319 灯泡开关

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

网友评论

      本文标题:672. 灯泡开关(Python)

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