Skip to content

Commit b8e1934

Browse files
committed
deploy: cd6eed5
1 parent ca1bf74 commit b8e1934

File tree

6 files changed

+588
-211
lines changed

6 files changed

+588
-211
lines changed

en/lc/1310/index.html

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -34544,9 +34544,9 @@
3454434544
<ul class="md-nav__list">
3454534545

3454634546
<li class="md-nav__item">
34547-
<a href="#solution-1" class="md-nav__link">
34547+
<a href="#solution-1-prefix-xor" class="md-nav__link">
3454834548
<span class="md-ellipsis">
34549-
Solution 1
34549+
Solution 1: Prefix XOR
3455034550
</span>
3455134551
</a>
3455234552

@@ -78045,17 +78045,17 @@ <h2 id="description">Description</h2>
7804578045

7804678046
<pre>
7804778047
<strong>Input:</strong> arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3]]
78048-
<strong>Output:</strong> [2,7,14,8]
78049-
<strong>Explanation:</strong>
78048+
<strong>Output:</strong> [2,7,14,8]
78049+
<strong>Explanation:</strong>
7805078050
The binary representation of the elements in the array are:
78051-
1 = 0001
78052-
3 = 0011
78053-
4 = 0100
78054-
8 = 1000
78051+
1 = 0001
78052+
3 = 0011
78053+
4 = 0100
78054+
8 = 1000
7805578055
The XOR values for queries are:
78056-
[0,1] = 1 xor 3 = 2
78057-
[1,2] = 3 xor 4 = 7
78058-
[0,3] = 1 xor 3 xor 4 xor 8 = 14
78056+
[0,1] = 1 xor 3 = 2
78057+
[1,2] = 3 xor 4 = 7
78058+
[0,3] = 1 xor 3 xor 4 xor 8 = 14
7805978059
[3,3] = 8
7806078060
</pre>
7806178061

@@ -78081,7 +78081,16 @@ <h2 id="description">Description</h2>
7808178081
<h2 id="solutions">Solutions</h2>
7808278082
<!-- solution:start -->
7808378083

78084-
<h3 id="solution-1">Solution 1</h3>
78084+
<h3 id="solution-1-prefix-xor">Solution 1: Prefix XOR</h3>
78085+
<p>We can use a prefix XOR array $s$ of length $n+1$ to store the prefix XOR results of the array $\textit{arr}$, where $s[i] = s[i-1] \oplus \textit{arr}[i-1]$. That is, $s[i]$ represents the XOR result of the first $i$ elements of $\textit{arr}$.</p>
78086+
<p>For a query $[l, r]$, we can obtain:</p>
78087+
<p>$$
78088+
\begin{aligned}
78089+
\textit{arr}[l] \oplus \textit{arr}[l+1] \oplus \cdots \oplus \textit{arr}[r] &amp;= (\textit{arr}[0] \oplus \textit{arr}[1] \oplus \cdots \oplus \textit{arr}[l-1]) \oplus (\textit{arr}[0] \oplus \textit{arr}[1] \oplus \cdots \oplus \textit{arr}[r]) \
78090+
&amp;= s[l] \oplus s[r+1]
78091+
\end{aligned}
78092+
$$</p>
78093+
<p>Time complexity is $O(n+m)$, and space complexity is $O(n)$. Here, $n$ and $m$ are the lengths of the array $\textit{arr}$ and the query array $\textit{queries}$, respectively.</p>
7808578094
<div class="tabbed-set tabbed-alternate" data-tabs="1:6"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label><label for="__tabbed_1_6">JavaScript</label></div>
7808678095
<div class="tabbed-content">
7808778096
<div class="tabbed-block">
@@ -78191,28 +78200,20 @@ <h3 id="solution-1">Solution 1</h3>
7819178200
</code></pre></div></td></tr></table></div>
7819278201
</div>
7819378202
<div class="tabbed-block">
78194-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
78195-
<span class="normal"> 2</span>
78196-
<span class="normal"> 3</span>
78197-
<span class="normal"> 4</span>
78198-
<span class="normal"> 5</span>
78199-
<span class="normal"> 6</span>
78200-
<span class="normal"> 7</span>
78201-
<span class="normal"> 8</span>
78202-
<span class="normal"> 9</span>
78203-
<span class="normal">10</span>
78204-
<span class="normal">11</span>
78205-
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">xorQueries</span><span class="p">(</span><span class="nx">arr</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[],</span><span class="w"> </span><span class="nx">queries</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[][])</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span>
78203+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
78204+
<span class="normal">2</span>
78205+
<span class="normal">3</span>
78206+
<span class="normal">4</span>
78207+
<span class="normal">5</span>
78208+
<span class="normal">6</span>
78209+
<span class="normal">7</span>
78210+
<span class="normal">8</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">xorQueries</span><span class="p">(</span><span class="nx">arr</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[],</span><span class="w"> </span><span class="nx">queries</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[][])</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span>
7820678211
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>
78207-
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">s</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
78212+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">s</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
7820878213
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
7820978214
<span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
7821078215
<span class="w"> </span><span class="p">}</span>
78211-
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">ans</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[];</span>
78212-
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">l</span><span class="p">,</span><span class="w"> </span><span class="nx">r</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">queries</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
78213-
<span class="w"> </span><span class="nx">ans</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">s</span><span class="p">[</span><span class="nx">r</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">l</span><span class="p">]);</span>
78214-
<span class="w"> </span><span class="p">}</span>
78215-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
78216+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">queries</span><span class="p">.</span><span class="nx">map</span><span class="p">(([</span><span class="nx">l</span><span class="p">,</span><span class="w"> </span><span class="nx">r</span><span class="p">])</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">r</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">l</span><span class="p">]);</span>
7821678217
<span class="p">}</span>
7821778218
</code></pre></div></td></tr></table></div>
7821878219
</div>
@@ -78229,26 +78230,18 @@ <h3 id="solution-1">Solution 1</h3>
7822978230
<span class="normal">10</span>
7823078231
<span class="normal">11</span>
7823178232
<span class="normal">12</span>
78232-
<span class="normal">13</span>
78233-
<span class="normal">14</span>
78234-
<span class="normal">15</span>
78235-
<span class="normal">16</span>
78236-
<span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
78233+
<span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
7823778234
<span class="cm"> * @param {number[]} arr</span>
7823878235
<span class="cm"> * @param {number[][]} queries</span>
7823978236
<span class="cm"> * @return {number[]}</span>
7824078237
<span class="cm"> */</span>
7824178238
<span class="kd">var</span><span class="w"> </span><span class="nx">xorQueries</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">arr</span><span class="p">,</span><span class="w"> </span><span class="nx">queries</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
7824278239
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>
78243-
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
78240+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
7824478241
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
7824578242
<span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
7824678243
<span class="w"> </span><span class="p">}</span>
78247-
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[];</span>
78248-
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">l</span><span class="p">,</span><span class="w"> </span><span class="nx">r</span><span class="p">]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">queries</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
78249-
<span class="w"> </span><span class="nx">ans</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">s</span><span class="p">[</span><span class="nx">r</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">l</span><span class="p">]);</span>
78250-
<span class="w"> </span><span class="p">}</span>
78251-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
78244+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">queries</span><span class="p">.</span><span class="nx">map</span><span class="p">(([</span><span class="nx">l</span><span class="p">,</span><span class="w"> </span><span class="nx">r</span><span class="p">])</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">r</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="nx">s</span><span class="p">[</span><span class="nx">l</span><span class="p">]);</span>
7825278245
<span class="p">};</span>
7825378246
</code></pre></div></td></tr></table></div>
7825478247
</div>

0 commit comments

Comments
 (0)