|
6 | 6 |
|
7 | 7 | <!-- 这里写题目描述 -->
|
8 | 8 |
|
9 |
| -<p>现有一个房间,墙上挂有 <code>n</code> 只已经打开的灯泡和 4 个按钮。在进行了 <code>m</code> 次未知操作后,你需要返回这 <code>n</code> 只灯泡可能有多少种不同的状态。</p> |
| 9 | +<p>房间中有 <code>n</code> 只已经打开的灯泡,编号从 <code>1</code> 到 <code>n</code> 。墙上挂着 <strong>4 个开关</strong> 。</p> |
10 | 10 |
|
11 |
| -<p>假设这 <code>n</code> 只灯泡被编号为 [1, 2, 3 ..., n],这 4 个按钮的功能如下:</p> |
| 11 | +<p>这 4 个开关各自都具有不同的功能,其中:</p> |
12 | 12 |
|
13 |
| -<ol> |
14 |
| - <li>将所有灯泡的状态反转(即开变为关,关变为开)</li> |
15 |
| - <li>将编号为偶数的灯泡的状态反转</li> |
16 |
| - <li>将编号为奇数的灯泡的状态反转</li> |
17 |
| - <li>将编号为 <code>3k+1</code> 的灯泡的状态反转(k = 0, 1, 2, ...)</li> |
18 |
| -</ol> |
| 13 | +<ul> |
| 14 | + <li><strong>开关 1 :</strong>反转当前所有灯的状态(即开变为关,关变为开)</li> |
| 15 | + <li><strong>开关 2 :</strong>反转编号为偶数的灯的状态(即 <code>2, 4, ...</code>)</li> |
| 16 | + <li><strong>开关 3 :</strong>反转编号为奇数的灯的状态(即 <code>1, 3, ...</code>)</li> |
| 17 | + <li><strong>开关 4 :</strong>反转编号为 <code>j = 3k + 1</code> 的灯的状态,其中 <code>k = 0, 1, 2, ...</code>(即 <code>1, 4, 7, 10, ...</code>)</li> |
| 18 | +</ul> |
19 | 19 |
|
20 |
| -<p><strong>示例 1:</strong></p> |
| 20 | +<p>你必须 <strong>恰好</strong> 按压开关 <code>presses</code> 次。每次按压,你都需要从 4 个开关中选出一个来执行按压操作。</p> |
21 | 21 |
|
22 |
| -<pre><strong>输入:</strong> n = 1, m = 1. |
23 |
| -<strong>输出:</strong> 2 |
24 |
| -<strong>说明:</strong> 状态为: [开], [关] |
| 22 | +<p>给你两个整数 <code>n</code> 和 <code>presses</code> ,执行完所有按压之后,返回 <strong>不同可能状态</strong> 的数量。</p> |
| 23 | + |
| 24 | +<p> </p> |
| 25 | + |
| 26 | +<p><strong>示例 1:</strong></p> |
| 27 | + |
| 28 | +<pre> |
| 29 | +<strong>输入:</strong>n = 1, presses = 1 |
| 30 | +<strong>输出:</strong>2 |
| 31 | +<strong>解释:</strong>状态可以是: |
| 32 | +- 按压开关 1 ,[关] |
| 33 | +- 按压开关 2 ,[开] |
25 | 34 | </pre>
|
26 | 35 |
|
27 |
| -<p><strong>示例 2:</strong></p> |
| 36 | +<p><strong>示例 2:</strong></p> |
28 | 37 |
|
29 |
| -<pre><strong>输入:</strong> n = 2, m = 1. |
30 |
| -<strong>输出:</strong> 3 |
31 |
| -<strong>说明:</strong> 状态为: [开, 关], [关, 开], [关, 关] |
| 38 | +<pre> |
| 39 | +<strong>输入:</strong>n = 2, presses = 1 |
| 40 | +<strong>输出:</strong>3 |
| 41 | +<strong>解释:</strong>状态可以是: |
| 42 | +- 按压开关 1 ,[关, 关] |
| 43 | +- 按压开关 2 ,[开, 关] |
| 44 | +- 按压开关 3 ,[关, 开] |
32 | 45 | </pre>
|
33 | 46 |
|
34 |
| -<p><strong>示例 3:</strong></p> |
| 47 | +<p><strong>示例 3:</strong></p> |
35 | 48 |
|
36 |
| -<pre><strong>输入:</strong> n = 3, m = 1. |
37 |
| -<strong>输出:</strong> 4 |
38 |
| -<strong>说明:</strong> 状态为: [关, 开, 关], [开, 关, 开], [关, 关, 关], [关, 开, 开]. |
| 49 | +<pre> |
| 50 | +<strong>输入:</strong>n = 3, presses = 1 |
| 51 | +<strong>输出:</strong>4 |
| 52 | +<strong>解释:</strong>状态可以是: |
| 53 | +- 按压开关 1 ,[关, 关, 关] |
| 54 | +- 按压开关 2 ,[关, 开, 关] |
| 55 | +- 按压开关 3 ,[开, 关, 开] |
| 56 | +- 按压开关 4 ,[关, 开, 开] |
39 | 57 | </pre>
|
40 | 58 |
|
41 |
| -<p><strong>注意:</strong> <code>n</code> 和 <code>m</code> 都属于 [0, 1000].</p> |
| 59 | +<p> </p> |
| 60 | + |
| 61 | +<p><strong>提示:</strong></p> |
| 62 | + |
| 63 | +<ul> |
| 64 | + <li><code>1 <= n <= 1000</code></li> |
| 65 | + <li><code>0 <= presses <= 1000</code></li> |
| 66 | +</ul> |
42 | 67 |
|
43 | 68 | ## 解法
|
44 | 69 |
|
|
0 commit comments