@@ -77727,7 +77727,7 @@ <h3 id="solution-1-sorting">Solution 1: Sorting</h3>
77727
77727
<p>If two arrays are equal after sorting, then they can be made equal by reversing sub-arrays.</p>
77728
77728
<p>Therefore, we only need to sort the two arrays and then check if the sorted arrays are equal.</p>
77729
77729
<p>The time complexity is $O(n \times \log n)$, and the space complexity is $O(\log n)$, where $n$ is the length of the array $arr$.</p>
77730
- <div class="tabbed-set tabbed-alternate" data-tabs="1:8 "><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" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" 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">Rust </label><label for="__tabbed_1_7">PHP </label><label for="__tabbed_1_8">C</label></div>
77730
+ <div class="tabbed-set tabbed-alternate" data-tabs="1:9 "><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" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><input id="__tabbed_1_9" 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><label for="__tabbed_1_7">Rust </label><label for="__tabbed_1_8">PHP</label><label for="__tabbed_1_9 ">C</label></div>
77731
77731
<div class="tabbed-content">
77732
77732
<div class="tabbed-block">
77733
77733
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -77789,9 +77789,21 @@ <h3 id="solution-1-sorting">Solution 1: Sorting</h3>
77789
77789
<span class="normal">3</span>
77790
77790
<span class="normal">4</span>
77791
77791
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">canBeEqual</span><span class="p">(</span><span class="nx">target</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">arr</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">boolean</span><span class="w"> </span><span class="p">{</span>
77792
- <span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">sort</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span>
77793
- <span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">sort</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span>
77794
- <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">join</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">join</span><span class="p">();</span>
77792
+ <span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">sort</span><span class="p">();</span>
77793
+ <span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">sort</span><span class="p">();</span>
77794
+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">every</span><span class="p">((</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="nx">x</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>
77795
+ <span class="p">}</span>
77796
+ </code></pre></div></td></tr></table></div>
77797
+ </div>
77798
+ <div class="tabbed-block">
77799
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
77800
+ <span class="normal">2</span>
77801
+ <span class="normal">3</span>
77802
+ <span class="normal">4</span>
77803
+ <span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">canBeEqual</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span><span class="w"> </span><span class="nx">arr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
77804
+ <span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">sort</span><span class="p">();</span>
77805
+ <span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">sort</span><span class="p">();</span>
77806
+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">every</span><span class="p">((</span><span class="nx">x</span><span class="p">,</span><span class="w"> </span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="nx">x</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>
77795
77807
<span class="p">}</span>
77796
77808
</code></pre></div></td></tr></table></div>
77797
77809
</div>
@@ -77877,7 +77889,7 @@ <h3 id="solution-2-counting">Solution 2: Counting</h3>
77877
77889
<p>We note that the range of the array elements given in the problem is $1 \sim 1000$. Therefore, we can use two arrays <code>cnt1</code> and <code>cnt2</code> of length $1001$ to record the number of times each element appears in the arrays <code>target</code> and <code>arr</code> respectively. Finally, we just need to check if the two arrays are equal.</p>
77878
77890
<p>We can also use only one array <code>cnt</code>. We traverse the arrays <code>target</code> and <code>arr</code>. For <code>target[i]</code>, we increment <code>cnt[target[i]]</code>, and for <code>arr[i]</code>, we decrement <code>cnt[arr[i]]</code>. In the end, we check if all elements in the array <code>cnt</code> are $0$.</p>
77879
77891
<p>The time complexity is $O(n + M)$, and the space complexity is $O(M)$. Here, $n$ is the length of the array <code>arr</code>, and $M$ is the range of the array elements. In this problem, $M = 1001$.</p>
77880
- <div class="tabbed-set tabbed-alternate" data-tabs="2:6 "><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label><label for="__tabbed_2_5">TypeScript</label><label for="__tabbed_2_6">Rust</label></div>
77892
+ <div class="tabbed-set tabbed-alternate" data-tabs="2:7 "><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" /><input id="__tabbed_2_7" name="__tabbed_2" type="radio" />< div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label><label for="__tabbed_2_5">TypeScript</label><label for="__tabbed_2_6">JavaScript</label><label for="__tabbed_2_7 ">Rust</label></div>
77881
77893
<div class="tabbed-content">
77882
77894
<div class="tabbed-block">
77883
77895
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -77990,6 +78002,26 @@ <h3 id="solution-2-counting">Solution 2: Counting</h3>
77990
78002
</code></pre></div></td></tr></table></div>
77991
78003
</div>
77992
78004
<div class="tabbed-block">
78005
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
78006
+ <span class="normal">2</span>
78007
+ <span class="normal">3</span>
78008
+ <span class="normal">4</span>
78009
+ <span class="normal">5</span>
78010
+ <span class="normal">6</span>
78011
+ <span class="normal">7</span>
78012
+ <span class="normal">8</span>
78013
+ <span class="normal">9</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">canBeEqual</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span><span class="w"> </span><span class="nx">arr</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
78014
+ <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">target</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>
78015
+ <span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="mf">1001</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
78016
+ <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"><</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
78017
+ <span class="w"> </span><span class="nx">cnt</span><span class="p">[</span><span class="nx">target</span><span class="p">[</span><span class="nx">i</span><span class="p">]]</span><span class="o">++</span><span class="p">;</span>
78018
+ <span class="w"> </span><span class="nx">cnt</span><span class="p">[</span><span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">]]</span><span class="o">--</span><span class="p">;</span>
78019
+ <span class="w"> </span><span class="p">}</span>
78020
+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">cnt</span><span class="p">.</span><span class="nx">every</span><span class="p">(</span><span class="nx">v</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="o">!</span><span class="nx">v</span><span class="p">);</span>
78021
+ <span class="p">}</span>
78022
+ </code></pre></div></td></tr></table></div>
78023
+ </div>
78024
+ <div class="tabbed-block">
77993
78025
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
77994
78026
<span class="normal"> 2</span>
77995
78027
<span class="normal"> 3</span>
@@ -78046,6 +78078,11 @@ <h3 id="solution-2-counting">Solution 2: Counting</h3>
78046
78078
78047
78079
<nav>
78048
78080
78081
+ <a href="https://github.com/rain84" class="md-author" title="@rain84">
78082
+
78083
+ <img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84">
78084
+ </a>
78085
+
78049
78086
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
78050
78087
78051
78088
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments