672. Bulb Switcher II 灯泡切换器II

There is a room with n lights which are turned on initially and 4 buttons on the wall. After performing exactly m unknown operations towards buttons, you need to return how many different kinds of status of the n lights could be.

Suppose n lights are labeled as number [1, 2, 3 ..., n], function of these 4 buttons are given below:

  1. Flip all the lights.
  2. Flip lights with even numbers.
  3. Flip lights with odd numbers.
  4. Flip lights with (3k + 1) numbers, k = 0, 1, 2, ...

Example 1:

Input: n = 1, m = 1.
Output: 2
Explanation: Status can be: [on], [off]

Example 2:

Input: n = 2, m = 1.
Output: 3
Explanation: Status can be: [on, off], [off, on], [off, off]

Example 3:

Input: n = 3, m = 1.
Output: 4
Explanation: Status can be: [off, on, off], [on, off, on], [off, off, off], [off, on, on].

Note:n and m both fit in range [0, 1000].

  1. class Solution:
  2. def flipLights(self, n, m):
  3. """
  4. :type n: int
  5. :type m: int
  6. :rtype: int
  7. """
  8. n = min(n, 3)
  9. if m == 0: return 1
  10. if m == 1: return [2, 3, 4][n-1]
  11. if m == 2: return [2, 4, 7][n-1]
  12. return [2, 4, 8][n-1]

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/xiejunzhao/p/8319167.html

时间: 2024-08-03 01:24:31

672. Bulb Switcher II 灯泡切换器II的相关文章

【小梅哥SOPC学习笔记】切换NIOS II CPU的主内存后软件中需要注意的几点设置

切换NIOS II CPU的主内存后软件中需要注意的几点设置 有时候,我们可能面对这样一种情况: 1. 我们创建一个SOPC系统,并在QSYS中设置NIOS II的复位地址和异常地址都指向SRAM: 2. 我们创建了正确的NIOS II软件工程并能够正常运行 3. 由于某种需求(如SRAM内存不够用了,需要换成内存更大的SDRAM),我们在面在QSYS中将NIOS II CPU的复位地址和异常地址修改为SDRAM 4. 我们需要继续使用之前创建的NIOS II软件工程. 这里,如果我们更改后直接

319 Bulb Switcher 灯泡开关

初始时有 n 个灯泡关闭. 第 1 轮,你打开所有的灯泡. 第 2 轮,每两个灯泡切换一次开关. 第 3 轮,每三个灯泡切换一次开关(如果关闭,则打开,如果打开则关闭).对于第 i 轮,你每 i 个灯泡切换一次开关. 对于第 n 轮,你只切换最后一个灯泡的开关. 找出 n 轮后有多少个亮着的灯泡.示例:给定 n = 3.状态off表示灯泡关闭,on表示开启.初始时, 灯泡状态 [off, off, off].第一轮后, 灯泡状态 [on, on, on].第二轮后, 灯泡状态 [on, off,

[LeetCode][JavaScript]Bulb Switcher

Bulb Switcher There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. On the third round, you toggle every third bulb (turning on if it's off or turning off if it's on). For the nth round, you

ImageSwitcher (图像切换器,显示图片)

ImageSwitcher继承了ViewSwitcher,主要在切换图片时加入动画效果 使用方法: 1.为ImageSwitcher提供一个ViewFactory,该ViewFactory生成的View组件必须是ImageView 2.切换图片时,用到的3个方法:imageSwitcher.setImageDrawable(Drawable drawable);  imageSwitcher.setImageResource(int resid);  imageSwitcher.setImage

Android 自学之网格试图(GridView)和图片切换器(ImageSwitcher)功能和用法

网格试图(GridView)用于在界面上按行,列分布的方式来显示多个组件. GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有一定的相似性.GridView和ListView的主要区别在于:ListView只是一个方向上的分布:而GridView则会在两个方向上分布. 与ListView相似的是,GridView也需要通过Adapter来提供显示数据:可以通过SimpleAdapter来为GridView提供数据,也可以通过开发Ba

HDU 3567 Eight II(八数码 II)

p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-size: 10.5000pt } h1 { margin-top: 5.0000pt; margin-bottom: 5.0000pt; text-align: center; font-family: 宋体; color: rgb(26,92,200); font-weight: bold; fo

KVM(多电脑切换器)

KVM:Keyboard Video Mouse的缩写.KVM 交换机通过直接连接键盘.视频和鼠标 (KVM) 端口,让您能够访问和控制计算机.KVM 技术无需目标服务器修改软件.这就意味着可以在 Windows 的 BIOS 环境下,随时访问目标计算机.KVM 提供真正的主板级别访问,并支持多平台服务器和串行设备.KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT 基础机房设施管理系统.可以从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备.KVM over IP

vue2 3d 切换器

空闲时写了一个3d切换器,灵感来自于转行前画3d工程图,效果如图: 功能:按住鼠标中间,变为3d模式,点击6个页面中的某一个页面,页面旋转放大,恢复到2d图形,3d图消失.再次点击鼠标中间,恢复为3d(含动画效果),按住中键不放,可以左右或者上下拖动,3d图片做720°旋转. 效果可在:此处查看 请使用chrome打开 转动原理:由于正方体只有6个面,所以ul+6个li标签,先做出正方体布局.li标签布局出正方向后,都是相对于ul标签的位置,所以转动ul标签,正方形并不会散架.鼠标水平移动X为u

【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】

[059-Spiral Matrix II(螺旋矩阵II)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For example, Given n = 3, You should return the following matrix: [ [ 1, 2, 3 ], [ 8,