355. Design Twitter
来源:互联网 发布:js设置html标签隐藏 编辑:程序博客网 时间:2024/05/23 13:03
public class Twitter { private Map<Integer,user> usermap; private static int timestamp=0; class twitte{ int id; int time; twitte next; twitte(int id){ this.id=id; time=timestamp++; next=null; } } class user{ int id; Set<Integer> fllowed; twitte twittehead; user(int id){ this.id=id; fllowed=new HashSet<>(); twittehead=null; fllow(id); } void fllow(int id){ fllowed.add(id); } void unfllow(int id){ fllowed.remove(id); } void post(int tweetId) { twitte temp=new twitte(tweetId); temp.next=twittehead; twittehead=temp; } } class timecomparetor implements Comparator<twitte>{ public int compare(twitte t1,twitte t2){ return t2.time-t1.time; } } /** Initialize your data structure here. */ public Twitter() { usermap=new HashMap<Integer,user>(); } public void postTweet(int userId, int tweetId) { if(!usermap.containsKey(userId)){ user temp=new user(userId); usermap.put(userId, temp); } usermap.get(userId).post(tweetId); } public List<Integer> getNewsFeed(int userId) { List<Integer> ret=new LinkedList<>(); if(!usermap.containsKey(userId)) return ret; Set<Integer> users=usermap.get(userId).fllowed; PriorityQueue<twitte> q = new PriorityQueue<twitte>(users.size(), new timecomparetor()); for(int user :users){ twitte temp=usermap.get(user).twittehead; if(temp!=null) q.add(temp); } int n=0; while(!q.isEmpty()&&n<10) { twitte temp=q.poll(); ret.add(temp.id); if(temp.next!=null) q.add(temp.next); n++; } return ret; } public void follow(int followerId, int followeeId) { if(!usermap.containsKey(followerId)){ user temp=new user(followerId); usermap.put(followerId,temp); } if(!usermap.containsKey(followeeId)) { user temp=new user(followeeId); usermap.put(followeeId,temp); } usermap.get(followerId).fllow(followeeId); } public void unfollow(int followerId, int followeeId) { if(!usermap.containsKey(followerId)||followerId==followeeId) return ; usermap.get(followerId).unfllow(followeeId); }}
1 0
- [leetcode] 355. Design Twitter
- 【LeetCode】355. Design Twitter
- leetcode.355. Design Twitter
- 355. Design Twitter
- 355. Design Twitter
- 355. Design Twitter
- [leetcode]355. Design Twitter
- 355. Design Twitter
- 355. Design Twitter
- 355. Design Twitter(unsolved)
- Leetcode 355. Design Twitter
- leetcode 355. Design Twitter
- leetcode 355. Design Twitter
- leetcode 355. Design Twitter
- 355. Design Twitter
- LeetCode 355. Design Twitter(设计Twitter)
- LeetCode—355. Design Twitter
- leetcode题解-355. Design Twitter
- sublime text2 自动生成头部注释
- Biker's Trip Odometer(水题)
- Android 中的CreatePackageContext()
- Text Kit入门——Beginning Text Kit
- java中解决double计算精度不准确问题
- 355. Design Twitter
- Jquery和JS获取ul中li标签
- 解答“压缩图片接口能压缩网络图片吗”
- Hibernate框架学习(第三讲)---Hibernate注解以及ID生成策略
- 类/指针/函数/this
- 单片机设计与开发
- 扫码功能代码
- 1、Web Services 简介
- redhat在vm扩展磁盘容量