房间中有 n 只已经打开的灯泡,编号从 1 到 n 。墙上挂着 4 个开关 。

这 4 个开关各自都具有不同的功能,其中:

开关 1 :反转当前所有灯的状态(即开变为关,关变为开)
开关 2 :反转编号为偶数的灯的状态(即 2, 4, …)
开关 3 :反转编号为奇数的灯的状态(即 1, 3, …)
开关 4 :反转编号为 j = 3k + 1 的灯的状态,其中 k = 0, 1, 2, …(即 1, 4, 7, 10, …)
你必须 恰好 按压开关 presses 次。每次按压,你都需要从 4 个开关中选出一个来执行按压操作。

给你两个整数 n 和 presses ,执行完所有按压之后,返回 不同可能状态 的数量。

示例 1:

输入:n = 1, presses = 1
输出:2
解释:状态可以是:

  • 按压开关 1 ,[关]
  • 按压开关 2 ,[开]
    示例 2:

输入:n = 2, presses = 1
输出:3
解释:状态可以是:

  • 按压开关 1 ,[关, 关]
  • 按压开关 2 ,[开, 关]
  • 按压开关 3 ,[关, 开]
    示例 3:

输入:n = 3, presses = 1
输出:4
解释:状态可以是:

  • 按压开关 1 ,[关, 关, 关]
  • 按压开关 2 ,[关, 开, 关]
  • 按压开关 3 ,[开, 关, 开]
  • 按压开关 4 ,[关, 开, 开]

提示:

1 <= n <= 1000
0 <= presses <= 1000

/*
所有的操作进行偶数次是会抵消的,那么所有操作只存在无效果和有效果;
且各一次操作2,3等效为一次操作1;
画一个类似真值表,可以推出 n>=3且m>=3时,结果只会是8;
接下来考虑个别情况即可。
*/

    public int flipLights(int n, int presses) {if (presses==0){return 1;}if (n==1){return 2;}if (n==2){return presses==1?3:4;}return presses>2?8:presses==1?4:7;}

【Java】672. 灯泡开关 Ⅱ相关推荐

  1. leetcode - 22 672. 灯泡开关 Ⅱ

    房间中有 n 只已经打开的灯泡,编号从 1 到 n .墙上挂着 4 个开关 . 这 4 个开关各自都具有不同的功能,其中: 开关 1 :反转当前所有灯的状态(即开变为关,关变为开) 开关 2 :反转编 ...

  2. LeetCode 672. 灯泡开关 Ⅱ(枚举)

    1. 题目 现有一个房间,墙上挂有 n 只已经打开的灯泡和 4 个按钮. 在进行了 m 次未知操作后,你需要返回这 n 只灯泡可能有多少种不同的状态. 假设这 n 只灯泡被编号为 [1, 2, 3 - ...

  3. LeetCode(319):灯泡开关 Bulb Switcher(Java)

    2019.8.6 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新) 每个数i必能分解成任意两个数的乘积(最少会有1*i),因此只有平方数会进行单次开关,因此只需要统计截止n的平方 ...

  4. 20200308: 生成每种字符都是奇数个的字符串灯泡开关 III(leetcode5352-5353)

    生成每种字符都是奇数个的字符串&灯泡开关 III 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 第一题没什么难度,StringBuilder拼接即可 第二题一开始想复杂了,用了Ha ...

  5. LeetCode 5353. 灯泡开关 III

    5353. 灯泡开关 III 房间中有 n 枚灯泡,编号从 1 到 n,自左向右排成一排.最初,所有的灯都是关着的. 在 k  时刻( k 的取值范围是 0 到 n - 1),我们打开 light[k ...

  6. 用html和js制作一个控制灯泡开关效果

    用html和js制作一个控制灯泡开关效果 **用css样式来控制div图片和文本的位置,然后用js里面onclick点击事件来控制图片的更换效果来实现当前运行图的效果** 1.以下是运行的效果图 2. ...

  7. 算法 319. 灯泡开关 python

    319. 灯泡开关 思路 整数的因数 因数是指整数a除以整数b(b≠0) 的商正好是整数而没有余数,我们就说b是a的因数. class Solution(object):def bulbSwitch( ...

  8. 【LeetCode】灯泡开关Ⅰ~ Ⅳ(你还是把我关了吧)

    [LeetCode]灯泡开关Ⅰ~ Ⅳ

  9. C/C++描述 LeetCode周赛 5473. 灯泡开关 IV

    5473. 灯泡开关 IV   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博 ...

最新文章

  1. 数据结构[单链表]操作大全(初始化,创建,插入,查询,删除,长度,输出)c++代码实现
  2. 【c语言】蓝桥杯算法提高 三角形面积
  3. 全志 移除屏幕超时选项 Patch
  4. 微信序列号生成器架构设计及演变
  5. vue.js上传头像插件_一个基于vue2.0的头像上传组件
  6. QT链接DLL库问题记录
  7. perl DBI 总结
  8. 【推荐系统】推荐系统中的图网络模型
  9. 职场“奇葩说”:我的老板有多坑?
  10. 72个炫酷的CSS技巧
  11. 免费的AI线稿图片上色工具+黑白图片上色网站合集(2021年实测可用)
  12. 各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵...
  13. 网易极客战记-KITHGARD地牢--健忘的宝石匠
  14. Python实战项目23个实战小项目小程序简单
  15. druid监控无法关闭(坑),及处理方式
  16. multimodal prompting
  17. x200换屏_小黑本“清凉一夏” — Thinkpad X200 拆解清理
  18. 如何更方便的探讨技术
  19. 行之有效的Golang编码规范
  20. python编程从入门到实践(入门)

热门文章

  1. kotlin 和java_报告显示,Kotlin和Java相得益彰
  2. 教育类作品《好妈妈胜过好老师》的优秀读后感2400字
  3. 先出报表还是先计提所得税_计提企业所得税应该先出报表再计提吗?
  4. Spring Boot实现MyBatis分页查询
  5. 困惑我们人生的62个问题答案
  6. 食品安全问题使贸易冲突硝烟四起
  7. 【服务器架构】经典游戏服务器端架构概述(续)
  8. android培训课程!深入解析android核心组件和应用框架,大厂直通车!
  9. 2018年狗年春联节选
  10. php js 比较大小写,jquery与js字母大小写转换与首字母大写