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

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

10 lines
10 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-design-twitter · MarkDown</title><meta name="description" content="leetcode-design-twitter - 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-design-twitter</h1><div class="post-meta"><div class="post-time">2020年4月14日</div></div><div class="post-content"><h3 id="355-设计推特"><a href="#355-设计推特" class="headerlink" title="355. 设计推特"></a>355. 设计推特</h3><p><a target="_blank" rel="noopener" href="https://leetcode-cn.com/problems/design-twitter/">题目</a></p>
<span id="more"></span>
<p>做出来倒是很简单,由于没有并发和特别的条件,测试数据量也不大。一开始搞错了,以为传入的 <code>twitterId</code> 就是自增的 id结果其实是每条推的内容所以增加了一个计数器去标记 id。</p>
<p>主要的考点应该是 <code>多路归并</code> 这个东西。我用的是排序,在数据量大的时候应该会有些问题。</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><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Twitter</span>:</span></span><br><span class="line"></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">__init__</span>(<span class="params">self</span>):</span></span><br><span class="line"> <span class="string">&quot;&quot;&quot;</span></span><br><span class="line"><span class="string"> Initialize your data structure here.</span></span><br><span class="line"><span class="string"> &quot;&quot;&quot;</span></span><br><span class="line"> self.tweets = &#123;&#125;</span><br><span class="line"> self.followers = &#123;&#125;</span><br><span class="line"> self._tid = <span class="number">0</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">postTweet</span>(<span class="params">self, userId: <span class="built_in">int</span>, tweetId: <span class="built_in">int</span></span>) -&gt; <span class="literal">None</span>:</span></span><br><span class="line"> <span class="string">&quot;&quot;&quot;</span></span><br><span class="line"><span class="string"> Compose a new tweet.</span></span><br><span class="line"><span class="string"> &quot;&quot;&quot;</span></span><br><span class="line"> <span class="keyword">if</span> <span class="keyword">not</span> self.tweets.get(userId):</span><br><span class="line"> self.tweets[userId] = []</span><br><span class="line"> self.tweets[userId].append((self._tid, tweetId))</span><br><span class="line"> self._tid += <span class="number">1</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">getNewsFeed</span>(<span class="params">self, userId: <span class="built_in">int</span></span>) :</span></span><br><span class="line"> <span class="string">&quot;&quot;&quot;</span></span><br><span class="line"><span class="string"> Retrieve the 10 most recent tweet ids in the user&#x27;s news feed. Each item in the news feed must be posted by users who the user followed or by the user herself. Tweets must be ordered from most recent to least recent.</span></span><br><span class="line"><span class="string"> &quot;&quot;&quot;</span></span><br><span class="line"> foers = self.followers.get(userId, <span class="built_in">set</span>())</span><br><span class="line"> foers = foers.union((userId,))</span><br><span class="line"> tweets = []</span><br><span class="line"> <span class="keyword">for</span> fo <span class="keyword">in</span> foers:</span><br><span class="line"> tweets.extend(self.tweets.get(fo, [])[-<span class="number">10</span>:])</span><br><span class="line"> <span class="keyword">return</span> [tw[<span class="number">1</span>] <span class="keyword">for</span> tw <span class="keyword">in</span> <span class="built_in">sorted</span>(tweets, reverse=<span class="literal">True</span>)[:<span class="number">10</span>]]</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">follow</span>(<span class="params">self, followerId: <span class="built_in">int</span>, followeeId: <span class="built_in">int</span></span>) -&gt; <span class="literal">None</span>:</span></span><br><span class="line"> <span class="string">&quot;&quot;&quot;</span></span><br><span class="line"><span class="string"> Follower follows a followee. If the operation is invalid, it should be a no-op.</span></span><br><span class="line"><span class="string"> &quot;&quot;&quot;</span></span><br><span class="line"> <span class="keyword">if</span> <span class="keyword">not</span> self.followers.get(followerId):</span><br><span class="line"> self.followers[followerId] = <span class="built_in">set</span>()</span><br><span class="line"> self.followers[followerId].add(followeeId)</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">unfollow</span>(<span class="params">self, followerId: <span class="built_in">int</span>, followeeId: <span class="built_in">int</span></span>) -&gt; <span class="literal">None</span>:</span></span><br><span class="line"> <span class="string">&quot;&quot;&quot;</span></span><br><span class="line"><span class="string"> Follower unfollows a followee. If the operation is invalid, it should be a no-op.</span></span><br><span class="line"><span class="string"> &quot;&quot;&quot;</span></span><br><span class="line"> <span class="keyword">if</span> <span class="keyword">not</span> self.followers.get(followerId):</span><br><span class="line"> self.followers[followerId] = <span class="built_in">set</span>()</span><br><span class="line"> <span class="keyword">if</span> followeeId <span class="keyword">in</span> self.followers[followerId]:</span><br><span class="line"> self.followers[followerId].remove(followeeId)</span><br><span class="line"></span><br><span class="line"><span class="comment">#100 ms 19.2 MB</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Your Twitter object will be instantiated and called as such:</span></span><br><span class="line"><span class="comment"># obj = Twitter()</span></span><br><span class="line"><span class="comment"># obj.postTweet(userId,tweetId)</span></span><br><span class="line"><span class="comment"># param_2 = obj.getNewsFeed(userId)</span></span><br><span class="line"><span class="comment"># obj.follow(followerId,followeeId)</span></span><br><span class="line"><span class="comment"># obj.unfollow(followerId,followeeId)</span></span><br></pre></td></tr></table></figure>
</div></article></div></section><footer><div class="paginator"><a href="/2020/04/14/leetcode-add-two-numbers-ii/" class="prev">PRVE</a><a href="/2020/04/09/leetcode-he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/" 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>