This commit is contained in:
krahets
2024-04-03 21:49:02 +08:00
parent ea153a672f
commit 5988d20958
15 changed files with 694 additions and 106 deletions
@@ -2466,7 +2466,7 @@
<div class="highlight"><span class="filename">array.rb</span><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a><span class="c1">### 随机访问元素 ###</span>
<a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">random_access</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span>
<a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a><span class="w"> </span><span class="c1"># 在区间 [0, nums.length) 中随机抽取一个数字</span>
<a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a><span class="w"> </span><span class="n">random_index</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="no">Random</span><span class="o">.</span><span class="n">rand</span><span class="w"> </span><span class="mi">0</span><span class="o">...</span><span class="p">(</span><span class="n">nums</span><span class="o">.</span><span class="n">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a><span class="w"> </span><span class="n">random_index</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="no">Random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">nums</span><span class="o">.</span><span class="n">length</span><span class="p">)</span>
<a id="__codelineno-25-5" name="__codelineno-25-5" href="#__codelineno-25-5"></a>
<a id="__codelineno-25-6" name="__codelineno-25-6" href="#__codelineno-25-6"></a><span class="w"> </span><span class="c1"># 获取并返回随机元素</span>
<a id="__codelineno-25-7" name="__codelineno-25-7" href="#__codelineno-25-7"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">random_index</span><span class="o">]</span>
@@ -4167,7 +4167,7 @@
<a id="__codelineno-90-8" name="__codelineno-90-8" href="#__codelineno-90-8"></a><span class="w"> </span><span class="vi">@capacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span>
<a id="__codelineno-90-9" name="__codelineno-90-9" href="#__codelineno-90-9"></a><span class="w"> </span><span class="vi">@size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<a id="__codelineno-90-10" name="__codelineno-90-10" href="#__codelineno-90-10"></a><span class="w"> </span><span class="vi">@extend_ratio</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span>
<a id="__codelineno-90-11" name="__codelineno-90-11" href="#__codelineno-90-11"></a><span class="w"> </span><span class="vi">@arr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="w"> </span><span class="n">capacity</span>
<a id="__codelineno-90-11" name="__codelineno-90-11" href="#__codelineno-90-11"></a><span class="w"> </span><span class="vi">@arr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">capacity</span><span class="p">)</span>
<a id="__codelineno-90-12" name="__codelineno-90-12" href="#__codelineno-90-12"></a><span class="w"> </span><span class="k">end</span>
<a id="__codelineno-90-13" name="__codelineno-90-13" href="#__codelineno-90-13"></a>
<a id="__codelineno-90-14" name="__codelineno-90-14" href="#__codelineno-90-14"></a><span class="w"> </span><span class="c1">### 访问元素 ###</span>
@@ -4239,9 +4239,9 @@
<a id="__codelineno-90-80" name="__codelineno-90-80" href="#__codelineno-90-80"></a><span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">to_array</span>
<a id="__codelineno-90-81" name="__codelineno-90-81" href="#__codelineno-90-81"></a><span class="w"> </span><span class="n">sz</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">size</span>
<a id="__codelineno-90-82" name="__codelineno-90-82" href="#__codelineno-90-82"></a><span class="w"> </span><span class="c1"># 仅转换有效长度范围内的列表元素</span>
<a id="__codelineno-90-83" name="__codelineno-90-83" href="#__codelineno-90-83"></a><span class="w"> </span><span class="n">arr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="w"> </span><span class="n">sz</span>
<a id="__codelineno-90-83" name="__codelineno-90-83" href="#__codelineno-90-83"></a><span class="w"> </span><span class="n">arr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">sz</span><span class="p">)</span>
<a id="__codelineno-90-84" name="__codelineno-90-84" href="#__codelineno-90-84"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">...</span><span class="n">sz</span>
<a id="__codelineno-90-85" name="__codelineno-90-85" href="#__codelineno-90-85"></a><span class="w"> </span><span class="n">arr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get</span><span class="w"> </span><span class="n">i</span>
<a id="__codelineno-90-85" name="__codelineno-90-85" href="#__codelineno-90-85"></a><span class="w"> </span><span class="n">arr</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">get</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<a id="__codelineno-90-86" name="__codelineno-90-86" href="#__codelineno-90-86"></a><span class="w"> </span><span class="k">end</span>
<a id="__codelineno-90-87" name="__codelineno-90-87" href="#__codelineno-90-87"></a><span class="w"> </span><span class="n">arr</span>
<a id="__codelineno-90-88" name="__codelineno-90-88" href="#__codelineno-90-88"></a><span class="w"> </span><span class="k">end</span>