class Twitter {//key 关注人   Value: Set<Integer> 被关注人HashMap<Integer, HashSet<Integer>> followMap;//key twitterId    Value: userIdLinkedHashMap<Integer, Integer> twitterMap;public Twitter() {followMap = new HashMap<>();twitterMap = new LinkedHashMap<>(16, 0.75f, false);}public void postTweet(Integer userId, Integer twitterId) {twitterMap.put(twitterId, userId);//首次发Tweet 自己关注自己为了使用起来linkHashMap的能力HashSet<Integer> selfSet = followMap.get(userId);if (selfSet == null) {selfSet = new HashSet<>();followMap.put(userId, selfSet);}selfSet.add(userId);}public List<Integer> getNewsFeed(Integer userId) {List<Integer> tmpResult = new ArrayList<>();Set<Integer> followedSet = followMap.get(userId);for (Map.Entry<Integer, Integer> entry : twitterMap.entrySet()) {if (followedSet.contains(entry.getValue())) {tmpResult.add(entry.getKey());}}Collections.reverse(tmpResult);ArrayList<Integer> result = new ArrayList<>();int max = tmpResult.size() > 10 ? 10 : tmpResult.size();for (int i = 0; i < max; i++) {result.add(tmpResult.get(i));}return result;}public void follow(Integer follower, Integer followed) {HashSet<Integer> followedSet = followMap.get(follower);if (followedSet == null) {followedSet = new HashSet<>();followMap.put(follower, followedSet);}followedSet.add(followed);}public void unfollow(Integer follower, Integer followed) {Set<Integer> followedSet = followMap.get(follower);if (followedSet != null) {followedSet.remove(followed);}}
}/*** Your Twitter object will be instantiated and called as such:* Twitter obj = new Twitter();* obj.postTweet(userId,tweetId);* List<Integer> param_2 = obj.getNewsFeed(userId);* obj.follow(followerId,followeeId);* obj.unfollow(followerId,followeeId);*/

简化版的推特(Twitter)相关推荐

  1. 推特(twitter)翻译

    推特(twitter)翻译 本人开发了一个翻译推特的插件,打开twitter网站后会把帖子英文翻译成中文,翻译api用的google translate.后期会把youtubet自动显示中文字幕的功能 ...

  2. R语言对推特twitter数据进行文本情感分析

    原文链接:http://tecdat.cn/?p=4012 我们以R语言抓取的推特数据为例,对数据进行文本挖掘,进一步进行情感分析,从而得到很多有趣的信息(点击文末"阅读原文"获取 ...

  3. PHP开发仿推特Twitter社区网络源码+修复BUG

    正文: PHP开发仿推特Twitter社区网络源码+修复BUG,程序没什么好介绍的,主要就是一个社区网络,更多的功能大家自行去搭建测试,之前好像也发布过,只不过那个好像存在一些问题,这次发布的是修复B ...

  4. 推特Twitter数据采集(内容,粉丝,关键字等)

    (有需求可以私信我,24小时在线蟹蟹) 最近因为工作需要爬虫了一段时间推特. Twitter网站是用AJAX异步加载的,用request请求到json文件的数据url也是拒绝的 所以只能慢慢模拟浏览器 ...

  5. 推特Twitter高级搜索

    今天,尝试通过模拟浏览器爬取推特数据.想要爬取包括不同关键词的推文,比如含有"home"或者"school"其中的一个,再或者需要指定发推的时间,那么我们需要用 ...

  6. [Leedcode][JAVA][第355题][设计推特][面向对象][哈希表][链表][优先队列]

    [问题描述]355 设计推特 设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文.你的设计需要支持以下的几个功能:post ...

  7. LeetCode 355. 设计推特(哈希map+set)

    1. 题目 设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文.你的设计需要支持以下的几个功能: postTweet(us ...

  8. Leetcode 355. 设计推特 C++

    Leetcode 355. 设计推特 题目 设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文.你的设计需要支持以下的几个 ...

  9. Java实现 LeetCode 355 设计推特

    355. 设计推特 设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文.你的设计需要支持以下的几个功能: postTwee ...

最新文章

  1. Mobile OpenCart 自适应主题模板 ABC-0074
  2. highcharts图标插件详解一
  3. 【VS Code】vue.js ESLint + vscode 代码格式配置
  4. 第二章java编程基础测试题_Java编程基础测试题分享
  5. java array to string_数组到字符串转换(Array to string conversion)
  6. 简述Docker镜像、容器、仓库概念
  7. Jakarta EE贡献–入门
  8. fedora如何隐藏顶部状态栏_藏在 iOS 13 里的 9 个隐藏小技巧
  9. Windows Terminal 0.9 发布
  10. Django 模板层
  11. ArcGIS10破解版安装方法
  12. 前端系列教程之推荐(实用网站 Can I use)
  13. 与世界对话丨预康可瘦品牌发布暨全国招商会隆重举行
  14. LeetCode 19 螺旋矩阵
  15. eclipse报错!!!!
  16. sql查询今天,近七天,近一个月,近一年的数量统计
  17. 关于用scala 写Elasticsearch +springboot+jpa
  18. 安全诊室自检手册---牙椅篇
  19. 【设计模式】共享模式
  20. 前端好用的软件网站分享

热门文章

  1. 全自动升降柱液压型是如何进行升降的
  2. 请用英语描述smart city 的优点
  3. SAP 数据跨系统传输
  4. CodeForces 754D Fedor and coupons
  5. 如何获取小红书直播推流码并使用obs电脑直播教程
  6. offer写的薪资3.5万,入职时公司却让签5000元薪资的合同,不签就无法入职!
  7. matlab静力学实例,AnsysWorkbench静力学分析详细实例.pdf
  8. 计算机运算定律,乘法运算定律
  9. 跟着团子学SAP-通知单的隐藏小技巧:自动决定任务
  10. Unity 音乐播放管理器