Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_algorithm
提交
bda8990a
S
skill_tree_algorithm
项目概览
CSDN 技术社区
/
skill_tree_algorithm
通知
9
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
bda8990a
编写于
11月 18, 2021
作者:
每日一练社区
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update exercises
上级
4f5beb3a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
52 addition
and
1 deletion
+52
-1
data/3.算法高阶/5.leetcode-设计/1.355-设计推特/solution.md
data/3.算法高阶/5.leetcode-设计/1.355-设计推特/solution.md
+52
-1
未找到文件。
data/3.算法高阶/5.leetcode-设计/1.355-设计推特/solution.md
浏览文件 @
bda8990a
# 设计推特
<p>
设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近
<code>
10
</code>
条推文。
</p>
\n\n
<p>
实现
<code>
Twitter
</code>
类:
</p>
\n\n
<ul>
\n\t
<li><code>
Twitter()
</code>
初始化简易版推特对象
</li>
\n\t
<li><code>
void postTweet(int userId, int tweetId)
</code>
根据给定的
<code>
tweetId
</code>
和
<code>
userId
</code>
创建一条新推文。每次调用次函数都会使用一个不同的
<code>
tweetId
</code>
。
</li>
\n\t
<li><code>
List
<
Integer
>
getNewsFeed(int userId)
</code>
检索当前用户新闻推送中最近
<code>
10
</code>
条推文的 ID 。新闻推送中的每一项都必须是由用户关注的人或者是用户自己发布的推文。推文必须
<strong>
按照时间顺序由最近到最远排序
</strong>
。
</li>
\n\t
<li><code>
void follow(int followerId, int followeeId)
</code>
ID 为
<code>
followerId
</code>
的用户开始关注 ID 为
<code>
followeeId
</code>
的用户。
</li>
\n\t
<li><code>
void unfollow(int followerId, int followeeId)
</code>
ID 为
<code>
followerId
</code>
的用户不再关注 ID 为
<code>
followeeId
</code>
的用户。
</li>
\n
</ul>
\n\n
<p>
</p>
\n\n
<p><strong>
示例:
</strong></p>
\n\n
<pre>
\n
<strong>
输入
</strong>
\n
[
\"
Twitter
\"
,
\"
postTweet
\"
,
\"
getNewsFeed
\"
,
\"
follow
\"
,
\"
postTweet
\"
,
\"
getNewsFeed
\"
,
\"
unfollow
\"
,
\"
getNewsFeed
\"
]
\n
[[], [1, 5], [1], [1, 2], [2, 6], [1], [1, 2], [1]]
\n
<strong>
输出
</strong>
\n
[null, null, [5], null, null, [6, 5], null, [5]]
\n\n
<strong>
解释
</strong>
\n
Twitter twitter = new Twitter();
\n
twitter.postTweet(1, 5); // 用户 1 发送了一条新推文 (用户 id = 1, 推文 id = 5)
\n
twitter.getNewsFeed(1); // 用户 1 的获取推文应当返回一个列表,其中包含一个 id 为 5 的推文
\n
twitter.follow(1, 2); // 用户 1 关注了用户 2
\n
twitter.postTweet(2, 6); // 用户 2 发送了一个新推文 (推文 id = 6)
\n
twitter.getNewsFeed(1); // 用户 1 的获取推文应当返回一个列表,其中包含两个推文,id 分别为 -
>
[6, 5] 。推文 id 6 应当在推文 id 5 之前,因为它是在 5 之后发送的
\n
twitter.unfollow(1, 2); // 用户 1 取消关注了用户 2
\n
twitter.getNewsFeed(1); // 用户 1 获取推文应当返回一个列表,其中包含一个 id 为 5 的推文。因为用户 1 已经不再关注用户 2
</pre>
\n\n
<p>
</p>
\n\n
<p><strong>
提示:
</strong></p>
\n\n
<ul>
\n\t
<li><code>
1
<
= userId, followerId, followeeId
<
= 500
</code></li>
\n\t
<li><code>
0
<
= tweetId
<
= 10
<sup>
4
</sup></code></li>
\n\t
<li>
所有推特的 ID 都互不相同
</li>
\n\t
<li><code>
postTweet
</code>
、
<code>
getNewsFeed
</code>
、
<code>
follow
</code>
和
<code>
unfollow
</code>
方法最多调用
<code>
3
*
10
<sup>
4
</sup></code>
次
</li>
\n
</ul>
\n
<p>
设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近
<code>
10
</code>
条推文。
</p>
<p>
实现
<code>
Twitter
</code>
类:
</p>
<ul>
<li><code>
Twitter()
</code>
初始化简易版推特对象
</li>
<li><code>
void postTweet(int userId, int tweetId)
</code>
根据给定的
<code>
tweetId
</code>
和
<code>
userId
</code>
创建一条新推文。每次调用次函数都会使用一个不同的
<code>
tweetId
</code>
。
</li>
<li><code>
List
<
Integer
>
getNewsFeed(int userId)
</code>
检索当前用户新闻推送中最近
<code>
10
</code>
条推文的 ID 。新闻推送中的每一项都必须是由用户关注的人或者是用户自己发布的推文。推文必须
<strong>
按照时间顺序由最近到最远排序
</strong>
。
</li>
<li><code>
void follow(int followerId, int followeeId)
</code>
ID 为
<code>
followerId
</code>
的用户开始关注 ID 为
<code>
followeeId
</code>
的用户。
</li>
<li><code>
void unfollow(int followerId, int followeeId)
</code>
ID 为
<code>
followerId
</code>
的用户不再关注 ID 为
<code>
followeeId
</code>
的用户。
</li>
</ul>
<p>
</p>
<p><strong>
示例:
</strong></p>
<strong>
输入
</strong>
```
["Twitter", "postTweet", "getNewsFeed", "follow", "postTweet", "getNewsFeed", "unfollow", "getNewsFeed"]
[[], [1, 5], [1], [1, 2], [2, 6], [1], [1, 2], [1]]
```
<strong>
输出
</strong>
```
[null, null, [5], null, null, [6, 5], null, [5]]
```
<strong>
解释
</strong>
```
java
Twitter
twitter
=
new
Twitter
();
twitter
.
postTweet
(
1
,
5
);
// 用户 1 发送了一条新推文 (用户 id = 1, 推文 id = 5)
twitter
.
getNewsFeed
(
1
);
// 用户 1 的获取推文应当返回一个列表,其中包含一个 id 为 5 的推文
twitter
.
follow
(
1
,
2
);
// 用户 1 关注了用户 2
twitter
.
postTweet
(
2
,
6
);
// 用户 2 发送了一个新推文 (推文 id = 6)
twitter
.
getNewsFeed
(
1
);
// 用户 1 的获取推文应当返回一个列表,其中包含两个推文,id 分别为 -> [6, 5] 。推文 id 6 应当在推文 id 5 之前,因为它是在 5 之后发送的
twitter
.
unfollow
(
1
,
2
);
// 用户 1 取消关注了用户 2
twitter
.
getNewsFeed
(
1
);
// 用户 1 获取推文应当返回一个列表,其中包含一个 id 为 5 的推文。因为用户 1 已经不再关注用户 2
```
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
1
<
= userId, followerId, followeeId
<
= 500
</code></li>
<li><code>
0
<
= tweetId
<
= 10
<sup>
4
</sup></code></li>
<li>
所有推特的 ID 都互不相同
</li>
<li><code>
postTweet
</code>
、
<code>
getNewsFeed
</code>
、
<code>
follow
</code>
和
<code>
unfollow
</code>
方法最多调用
<code>
3
*
10
<sup>
4
</sup></code>
次
</li>
</ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录