|
35 | 35 | <pre>
|
36 | 36 | <strong>输入:</strong> nums = [1,1,2]
|
37 | 37 | <strong>输出:</strong> false
|
38 |
| -<strong>解释:</strong> |
| 38 | +<strong>解释:</strong> |
39 | 39 | Alice 有两个选择: 擦掉数字 1 或 2。
|
40 | 40 | 如果擦掉 1, 数组变成 [1, 2]。剩余数字按位异或得到 1 XOR 2 = 3。那么 Bob 可以擦掉任意数字,因为 Alice 会成为擦掉最后一个数字的人,她总是会输。
|
41 | 41 | 如果 Alice 擦掉 2,那么数组变成[1, 1]。剩余数字按位异或得到 1 XOR 1 = 0。Alice 仍然会输掉游戏。
|
@@ -72,28 +72,28 @@ Alice 有两个选择: 擦掉数字 1 或 2。
|
72 | 72 |
|
73 | 73 | ### 方法一:位运算
|
74 | 74 |
|
75 |
| -根据游戏规则,轮到某个玩家时,如果当前黑板上所有数字按位异或运算结果为 $0$,这个玩家获胜。由于 Alice 先手,因此当 `nums` 中所有数字的异或结果为 $0$ 时,Alice 可以获胜。 |
| 75 | +根据游戏规则,轮到某个玩家时,如果当前黑板上所有数字按位异或运算结果为 $0$,这个玩家获胜。由于 Alice 先手,因此当 $\textit{nums}$ 中所有数字的异或结果为 $0$ 时,Alice 可以获胜。 |
76 | 76 |
|
77 |
| -当 `nums` 中所有数字的异或结果不为 $0$ 时,我们不妨考虑从数组 `nums` 的长度奇偶性来分析 Alice 的获胜情况。 |
| 77 | +当 $\textit{nums}$ 中所有数字的异或结果不为 $0$ 时,我们不妨考虑从数组 $\textit{nums}$ 的长度奇偶性来分析 Alice 的获胜情况。 |
78 | 78 |
|
79 |
| -当 `nums` 的长度为偶数时,如果 Alice 必败,那么只有一种情况,就是 Alice 无论擦掉哪个数字,剩余所有数字的异或结果都等于 $0$。我们来分析一下是否存在这种情况。 |
| 79 | +当 $\textit{nums}$ 的长度为偶数时,如果 Alice 必败,那么只有一种情况,就是 Alice 无论擦掉哪个数字,剩余所有数字的异或结果都等于 $0$。我们来分析一下是否存在这种情况。 |
80 | 80 |
|
81 |
| -假设数组 `nums` 长度为 $n$,并且 $n$ 是偶数,记所有数字异或结尾为 $S$,则有: |
| 81 | +假设数组 $\textit{nums}$ 长度为 $n$,并且 $n$ 是偶数,记所有数字异或结尾为 $S$,则有: |
82 | 82 |
|
83 | 83 | $$
|
84 |
| -S = nums[0] \oplus nums[1] \oplus \cdots \oplus nums[n-1] \neq 0 |
| 84 | +S = \textit{nums}[0] \oplus \textit{nums}[1] \oplus \cdots \oplus \textit{nums}[n-1] \neq 0 |
85 | 85 | $$
|
86 | 86 |
|
87 |
| -我们记 $S_i$ 为数组 `nums` 擦掉第 $i$ 个数字后的异或结果,那么有: |
| 87 | +我们记 $S_i$ 为数组 $\textit{nums}$ 擦掉第 $i$ 个数字后的异或结果,那么有: |
88 | 88 |
|
89 | 89 | $$
|
90 |
| -S_i \oplus nums[i] = S |
| 90 | +S_i \oplus \textit{nums}[i] = S |
91 | 91 | $$
|
92 | 92 |
|
93 |
| -等式两边同时异或 $nums[i]$,得到: |
| 93 | +等式两边同时异或 $\textit{nums}[i]$,得到: |
94 | 94 |
|
95 | 95 | $$
|
96 |
| -S_i = S \oplus nums[i] |
| 96 | +S_i = S \oplus \textit{nums}[i] |
97 | 97 | $$
|
98 | 98 |
|
99 | 99 | 如果无论 Alice 擦掉哪个数字,剩余所有数字的异或结果都等于 $0$,那么对所有 $i$,都有 $S_i = 0$,即:
|
|
102 | 102 | S_0 \oplus S_1 \oplus \cdots \oplus S_{n-1} = 0
|
103 | 103 | $$
|
104 | 104 |
|
105 |
| -我们将 $S_i = S \oplus nums[i]$ 代入上式,得到: |
| 105 | +我们将 $S_i = S \oplus \textit{nums}[i]$ 代入上式,得到: |
106 | 106 |
|
107 | 107 | $$
|
108 |
| -S \oplus nums[0] \oplus S \oplus nums[1] \oplus \cdots \oplus S \oplus nums[n-1] = 0 |
| 108 | +S \oplus \textit{nums}[0] \oplus S \oplus \textit{nums}[1] \oplus \cdots \oplus S \oplus \textit{nums}[n-1] = 0 |
109 | 109 | $$
|
110 | 110 |
|
111 |
| -上式共有 $n$(偶数)个 $S$,而 $nums[0] \oplus nums[1] \oplus \cdots \oplus nums[n-1]$ 也等于 $S$,因此上式等价于 $0 \oplus S = 0$。这与 $S \neq 0$ 矛盾,因此不存在这种情况。因此当 `nums` 的长度为偶数时,Alice 必胜。 |
| 111 | +上式共有 $n$(偶数)个 $S$,而 $\textit{nums}[0] \oplus \textit{nums}[1] \oplus \cdots \oplus \textit{nums}[n-1]$ 也等于 $S$,因此上式等价于 $0 \oplus S = 0$。这与 $S \neq 0$ 矛盾,因此不存在这种情况。因此当 $\textit{nums}$ 的长度为偶数时,Alice 必胜。 |
112 | 112 |
|
113 | 113 | 如果长度为奇数,那么 Alice 擦掉一个数字后,剩余数字个数为偶数,也就是将偶数长度的情况留给 Bob,那么 Bob 必胜,也即 Alice 必败。
|
114 | 114 |
|
115 |
| -综上,当 `nums` 的长度为偶数,或者 `nums` 中所有数字的异或结果为 $0$ 时,Alice 可以获胜。 |
| 115 | +综上,当 $\textit{nums}$ 的长度为偶数,或者 $\textit{nums}$ 中所有数字的异或结果为 $0$ 时,Alice 可以获胜。 |
116 | 116 |
|
117 |
| -时间复杂度 $O(n)$,空间复杂度 $O(1)$。其中 $n$ 为数组 `nums` 的长度。 |
| 117 | +时间复杂度 $O(n)$,其中 $n$ 为数组 $\textit{nums}$ 的长度。空间复杂度 $O(1)$。 |
118 | 118 |
|
119 | 119 | <!-- tabs:start -->
|
120 | 120 |
|
|
0 commit comments