Ching 482b55e66d feat(package.json): 重装依赖
重装依赖

Signed-off-by: Ching <loooching@gmail.com>
2022-02-02 21:07:01 +08:00

17 lines
6.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><title> leetcode-169 · MarkDown</title><meta name="description" content="leetcode-169 - Ching"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="short icon" href="/favicon.png"><link rel="stylesheet" href="/css/apollo.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600" type="text/css"><meta name="generator" content="Hexo 6.0.0"><link rel="alternate" href="/atom.xml" title="MarkDown" type="application/atom+xml">
</head><body><header><a href="/" class="logo-link"><img src="/logo.png"></a><ul class="nav nav-list"><li class="nav-list-item"><a href="/" target="_self" class="nav-list-link">ALL</a></li><li class="nav-list-item"><a href="/categories/leetcode/" target="_self" class="nav-list-link">LEETCODE</a></li><li class="nav-list-item"><a href="/atom.xml" target="_self" class="nav-list-link">RSS</a></li></ul></header><section class="container"><div class="post"><article class="post-block"><h1 class="post-title">leetcode-169</h1><div class="post-meta"><div class="post-time">2020年3月23日</div></div><div class="post-content"><h3 id="169-多数元素"><a href="#169-多数元素" class="headerlink" title="169. 多数元素"></a>169. 多数元素</h3><p><a target="_blank" rel="noopener" href="https://leetcode-cn.com/problems/majority-element/">题目</a></p>
<span id="more"></span>
<p>一开始的思路是遍历一遍整个列表,用一个字典去记录每个元素出现的次数,当次数大于 $\cfrac{n}{2}$ 时就可以得出结果。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Solution</span>:</span></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">majorityElement</span>(<span class="params">self, nums</span>) -&gt; <span class="built_in">int</span>:</span></span><br><span class="line"> d = &#123;&#125;</span><br><span class="line"> l = <span class="built_in">len</span>(nums)</span><br><span class="line"> <span class="keyword">for</span> n <span class="keyword">in</span> nums:</span><br><span class="line"> <span class="keyword">if</span> <span class="keyword">not</span> n <span class="keyword">in</span> d:</span><br><span class="line"> d[n] = <span class="number">0</span></span><br><span class="line"> d[n] = d[n] + <span class="number">1</span></span><br><span class="line"> <span class="keyword">if</span> d[n] &gt; l/<span class="number">2</span>:</span><br><span class="line"> <span class="keyword">return</span> n</span><br><span class="line"><span class="comment"># 64 ms 15.1 MB</span></span><br></pre></td></tr></table></figure>
<p>Python 也有专门计数的库,写起来更简单一点:</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Solution</span>:</span></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">majorityElement</span>(<span class="params">self, nums</span>):</span></span><br><span class="line"> counts = collections.Counter(nums)</span><br><span class="line"> <span class="keyword">return</span> <span class="built_in">max</span>(counts.keys(), key=counts.get)</span><br><span class="line"><span class="comment"># 44 ms 15.1 MB</span></span><br></pre></td></tr></table></figure>
<p>由于要找的数出现次数大于 $\cfrac{n}{2}$,脑子里掠过一下<a target="_blank" rel="noopener" href="https://zh.wikipedia.org/wiki/%E8%92%99%E5%9C%B0%E5%8D%A1%E7%BE%85%E6%96%B9%E6%B3%95">蒙特卡罗算法</a>,后来在官方解答中也看到类似的思路了:</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Solution</span>:</span></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">majorityElement</span>(<span class="params">self, nums</span>):</span></span><br><span class="line"> majority_count = <span class="built_in">len</span>(nums)//<span class="number">2</span></span><br><span class="line"> <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line"> candidate = random.choice(nums)</span><br><span class="line"> <span class="keyword">if</span> <span class="built_in">sum</span>(<span class="number">1</span> <span class="keyword">for</span> elem <span class="keyword">in</span> nums <span class="keyword">if</span> elem == candidate) &gt; majority_count:</span><br><span class="line"> <span class="keyword">return</span> candidate</span><br><span class="line"></span><br><span class="line"><span class="comment">#作者LeetCode-Solution</span></span><br><span class="line"><span class="comment">#链接https://leetcode-cn.com/problems/majority-element/solution/duo-shu-yuan-su-by-leetcode-solution/</span></span><br><span class="line"><span class="comment">#来源力扣LeetCode</span></span><br><span class="line"><span class="comment">#著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。</span></span><br></pre></td></tr></table></figure>
</div></article></div></section><footer><div class="paginator"><a href="/2020/03/23/leetcode-225/" class="prev">PRVE</a><a href="/2020/03/18/leetcode-206/" class="next">NEXT</a></div><div class="copyright"><p>© 2016 - 2022 <a href="http://blog.tunpok.com">Ching</a>, unless otherwise noted.</p></div></footer><script src="https://cdn.bootcss.com/mathjax/2.5.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></body></html>