@@ -80902,7 +80902,95 @@ <h3 id="solution-1">Solution 1</h3>
80902
80902
<div class="tabbed-set tabbed-alternate" data-tabs="1:4"><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" /><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></div>
80903
80903
<div class="tabbed-content">
80904
80904
<div class="tabbed-block">
80905
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code>
80905
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
80906
+ <span class="normal"> 2</span>
80907
+ <span class="normal"> 3</span>
80908
+ <span class="normal"> 4</span>
80909
+ <span class="normal"> 5</span>
80910
+ <span class="normal"> 6</span>
80911
+ <span class="normal"> 7</span>
80912
+ <span class="normal"> 8</span>
80913
+ <span class="normal"> 9</span>
80914
+ <span class="normal">10</span>
80915
+ <span class="normal">11</span>
80916
+ <span class="normal">12</span>
80917
+ <span class="normal">13</span>
80918
+ <span class="normal">14</span>
80919
+ <span class="normal">15</span>
80920
+ <span class="normal">16</span>
80921
+ <span class="normal">17</span>
80922
+ <span class="normal">18</span>
80923
+ <span class="normal">19</span>
80924
+ <span class="normal">20</span>
80925
+ <span class="normal">21</span>
80926
+ <span class="normal">22</span>
80927
+ <span class="normal">23</span>
80928
+ <span class="normal">24</span>
80929
+ <span class="normal">25</span>
80930
+ <span class="normal">26</span>
80931
+ <span class="normal">27</span>
80932
+ <span class="normal">28</span>
80933
+ <span class="normal">29</span>
80934
+ <span class="normal">30</span>
80935
+ <span class="normal">31</span>
80936
+ <span class="normal">32</span>
80937
+ <span class="normal">33</span>
80938
+ <span class="normal">34</span>
80939
+ <span class="normal">35</span>
80940
+ <span class="normal">36</span>
80941
+ <span class="normal">37</span>
80942
+ <span class="normal">38</span>
80943
+ <span class="normal">39</span>
80944
+ <span class="normal">40</span>
80945
+ <span class="normal">41</span>
80946
+ <span class="normal">42</span>
80947
+ <span class="normal">43</span>
80948
+ <span class="normal">44</span>
80949
+ <span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">from</span> <span class="nn">sortedcontainers</span> <span class="kn">import</span> <span class="n">SortedList</span>
80950
+
80951
+
80952
+ <span class="k">class</span> <span class="nc">StatisticsTracker</span><span class="p">:</span>
80953
+
80954
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
80955
+ <span class="bp">self</span><span class="o">.</span><span class="n">q</span> <span class="o">=</span> <span class="n">deque</span><span class="p">()</span>
80956
+ <span class="bp">self</span><span class="o">.</span><span class="n">s</span> <span class="o">=</span> <span class="mi">0</span>
80957
+ <span class="bp">self</span><span class="o">.</span><span class="n">cnt</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
80958
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl</span> <span class="o">=</span> <span class="n">SortedList</span><span class="p">()</span>
80959
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl2</span> <span class="o">=</span> <span class="n">SortedList</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="p">(</span><span class="o">-</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
80960
+
80961
+ <span class="k">def</span> <span class="nf">addNumber</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
80962
+ <span class="bp">self</span><span class="o">.</span><span class="n">q</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">number</span><span class="p">)</span>
80963
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">number</span><span class="p">)</span>
80964
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl2</span><span class="o">.</span><span class="n">discard</span><span class="p">((</span><span class="n">number</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">number</span><span class="p">]))</span>
80965
+ <span class="bp">self</span><span class="o">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">number</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
80966
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl2</span><span class="o">.</span><span class="n">add</span><span class="p">((</span><span class="n">number</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">number</span><span class="p">]))</span>
80967
+ <span class="bp">self</span><span class="o">.</span><span class="n">s</span> <span class="o">+=</span> <span class="n">number</span>
80968
+
80969
+ <span class="k">def</span> <span class="nf">removeFirstAddedNumber</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
80970
+ <span class="n">number</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">q</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
80971
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">number</span><span class="p">)</span>
80972
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl2</span><span class="o">.</span><span class="n">discard</span><span class="p">((</span><span class="n">number</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">number</span><span class="p">]))</span>
80973
+ <span class="bp">self</span><span class="o">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">number</span><span class="p">]</span> <span class="o">-=</span> <span class="mi">1</span>
80974
+ <span class="bp">self</span><span class="o">.</span><span class="n">sl2</span><span class="o">.</span><span class="n">add</span><span class="p">((</span><span class="n">number</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">number</span><span class="p">]))</span>
80975
+ <span class="bp">self</span><span class="o">.</span><span class="n">s</span> <span class="o">-=</span> <span class="n">number</span>
80976
+
80977
+ <span class="k">def</span> <span class="nf">getMean</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
80978
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">s</span> <span class="o">//</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">q</span><span class="p">)</span>
80979
+
80980
+ <span class="k">def</span> <span class="nf">getMedian</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
80981
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sl</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">q</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span><span class="p">]</span>
80982
+
80983
+ <span class="k">def</span> <span class="nf">getMode</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
80984
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sl2</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
80985
+
80986
+
80987
+ <span class="c1"># Your StatisticsTracker object will be instantiated and called as such:</span>
80988
+ <span class="c1"># obj = StatisticsTracker()</span>
80989
+ <span class="c1"># obj.addNumber(number)</span>
80990
+ <span class="c1"># obj.removeFirstAddedNumber()</span>
80991
+ <span class="c1"># param_3 = obj.getMean()</span>
80992
+ <span class="c1"># param_4 = obj.getMedian()</span>
80993
+ <span class="c1"># param_5 = obj.getMode()</span>
80906
80994
</code></pre></div></td></tr></table></div>
80907
80995
</div>
80908
80996
<div class="tabbed-block">
0 commit comments