挚文集团

收藏
社交
1000-9999人
上市
北京
WLB/965榜

35

在招职位

33

面试经验

0

真题试卷

上传简历
此刻你想和大家分享什么
职位类型
全部
后端开发
客户端开发
人工智能/算法
最新
热门
2024-11-29 16:28
已编辑
门头沟学院 golang
一面全程1h20min1. 自我介绍2. 问能不能接受北京base,提前实习,java技术栈3. 缓存击穿怎么解决的,介绍下多个方案,缓存一致性怎么解决。如何用redis实现一个分布式布隆过滤器4. 拷打实习5. redisson分布式锁原理,如何自己设计一个分布式锁6. 读扩散和写扩散的区别,它们的应用场景有哪些。离线消息存储和拉取怎么做的,如何优化(多端登录状态存储,限流)7. 消息发送的可靠性和幂等性怎么实现的8. rpc中的简易注册中心怎么实现的,为什么不使用第三方中间件9. 手写题目:LRU(哈希表中的value为什么要存储key值)10. 反问已约二面二面全程50min有俩面试官,貌似一个业务面试官+一个ld1. 自我介绍2. 最近还在实习吗,面试通过后何时到岗3. 实习中落地使用了大模型,讲一下怎么对大模型进行选型的,prompt如何调优4. 如何设计一个朋友圈功能,采用读扩散和写扩散的区别。现在比如说有一个大v,粉丝量很高,该采用写扩散还是读扩散,如何进行优化5. redisson分布式锁的原理?redis实现分布式锁在哪些情况下会失效?6. 死锁问题如何产生?如何排查和解决死锁?我们日常编码过程中可以怎么去避免7. 你的职业规划是怎样的?挑选公司的倾向能讲一下吗?目前手上有没有其他offer8. 反问已约hr面已oc
忧桑ing:基础知识问题题解 1. 缓存击穿怎么解决的,介绍下多个方案, 缓存击穿是热点key不在缓存中(主要是热点key失效导致),导致大量请求到数据库中,导致数据库压力变大深圳宕机. 解决方案: 1)热点key不过期 2)热点key续期 3)热点key预加载 4) 请求数据库时,先获取锁,避免同时请求到数据库 2.缓存一致性怎么解决 数据修改:修改数据加分布式锁 缓存删除 先改后删 延时双删(业界主要的方案) 3 如何用redis实现一个分布式布隆过滤器 使用bitmap数据实现, 具体可以使用Redisson 或者 Redis 4.0的布隆过滤器插件 4 读扩散和写扩散的区别,它们的应用场景有哪些。 读扩散: 存一份数据, 每个用户都读该数据, 读取性能可能导致瓶颈 写扩散: 每个用户写一份数据, 各自读取自己的数据, 写性能可能导致瓶颈 常见的读写扩散应用场景是feed流, 例如微博, Twitter, im群聊等 4. 如何设计一个朋友圈功能,采用读扩散和写扩散的区别。现在比如说有一个大v,粉丝量很高,该采用写扩散还是读扩散,如何进行优化 粉丝量很高: 基本采用读扩散, 因为写的数据太多,存储成本高, 优化: 对活跃用户采用写扩散, 不活跃客户端采用读扩散 5. redis实现分布式锁在哪些情况下会失效? 客户端长时间阻塞导致锁失效问题 6. 死锁问题如何产生?如何排查和解决死锁?我们日常编码过程中可以怎么去避免 死锁问题是互相等待产生的 (互斥、请求与保持、不可抢占、循环等待) 排查和解决死锁: 工具排查, 人工检查. 编码中如何避免: 注意加锁顺序
查看14道真题和解析
点赞 评论 收藏
分享
1.构建图使用递归和回溯实现最长路径通过100%public class Solution {    public String LongestBehaviorPath (String[] paths) {            Map<String,List<String>> graph = new HashMap<>();        Map<String,Integer> indegree = new HashMap<>();        for(String path : paths){            String []steps = path.split("->");            for(int i = 0;i<steps.length-1;i++){                graph.putIfAbsent(steps[i],new ArrayList<>());                graph.get(steps[i]).add(steps[i+1]);                indegree.put(steps[i+1],indegree.getOrDefault(steps[i+1],0)+1);                indegree.putIfAbsent(steps[i],0);            }        }        List<String> startNodes = new ArrayList<>();        for(String node:indegree.keySet()){            if(indegree.get(node) == 0){                startNodes.add(node);            }        }        List<String> longestPath = new ArrayList<>();        for(String start : startNodes){            dfs(start,new ArrayList<>(),graph,longestPath);        }       return String.join("->",longestPath);     }    private static void dfs(String node,List<String> path,Map<String,List<String>> graph,List<String> longestPath){        path.add(node);        if(path.size()> longestPath.size()){            longestPath.clear();            longestPath.addAll(new ArrayList<>(path));        }        if(graph.containsKey(node)){            for(String neighbor: graph.get(node)){                dfs(neighbor,path,graph,longestPath);            }        }        path.remove(path.size() - 1);    }}2.求逆值对双重for循环遍历比较通过100%
查看2道真题和解析 投递挚文集团等公司10个岗位
点赞 评论 收藏
分享
2024-06-14 19:32
燕山大学 Java
牛客88532749号:然而这次笔试不算
查看1道真题和解析 投递挚文集团等公司10个岗位
点赞 评论 收藏
分享
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客企业服务