拼多多集团-PDD

收藏
电商
1000-9999人
上市
上海
福利丰厚榜学历友好榜高校必争榜offer比较常胜榜HC充足榜校招高薪榜牛客指数榜
查看官网
上传简历
职位类型
全部
后端开发
前端开发
客户端开发
产品
运营
更多
最新
热门
一、Java基础与JVM(6题)HashMap扩容时链表转红黑树的阈值为什么是8?退化为6的原因?synchronized锁升级过程?G1垃圾回收器如何预测停顿时间?Region大小如何设置?volatile能否保证数组元素的可见性?如何解决?ThreadLocal内存泄漏的根本原因?JDK改进方案?Java 8中Stream的并行处理原理?ForkJoinPool工作窃取机制?二、并发编程(5题)AQS中为什么用CLH队列而不用普通链表?线程池核心参数设置规则?美团动态调整方案?ConcurrentHashMap的size()方法为何不精确?替代方案?如何用CAS实现一个无锁栈?ABA问题如何规避?CompletableFuture如何实现多个异步任务依赖执行?三、数据库与RedisMySQL索引失效的10种场景?最左前缀原则的底层原理?十亿级订单表如何优化分页查询?Redis大Key删除导致集群崩溃,如何避免?Redis事务与MySQL事务的ACID区别?缓存与数据库一致性方案对比?拼多多秒杀采用哪种?Redis Cluster的slot迁移过程会阻塞请求吗?MySQL死锁排查步骤?如何用gap锁解决幻读?四、分布式与微服务(6题)TCC事务的Confirm阶段失败怎么办?如何设计一个支撑百万QPS的分布式ID生成器?Nacos如何实现配置动态推送?长轮询原理?RocketMQ如何保证消息不丢失?Dubbo的泛化调用使用场景?如何实现服务降级?CAP理论在拼多多购物车中的取舍?五、系统设计(4题)设计拼多多砍价系统,如何防止刷单?订单超时未支付自动关闭,如何实现?如何设计一个实时热卖排行榜?分布式锁在库存扣减中的应用,Redisson实现原理?
野猪不是猪🐗:有点意思,成功引起了我的注意(欢迎讨论) 一 1. 红黑树单个节点的空间为链表的两倍,长度低时红黑树优势不大。退化阈值为6是为了留一定缓冲空间防止反复横跳,树化和反树化都是有开销的 2. 板子 3. jvm参数设置期望停顿时间,g1将堆空间分为若干的region并维护每个region的回收价值。g1根据历史数据预测本次gc时间,若高于期望停顿时间,gc时优先选定价值最大的若干region进行回收 4. jvm参数 5. 不能。用AtomicReference<T> 6. 工作线程的复用。key弱引用,且获取key等操作时会扫沿途的脏Entry,但仍不能完全防止。实际使用中必须在finally块中手动remove 7 8. 不懂 二 1. 不懂 2. 核心线程数cpu密集型取核数+1,io密集型看具体的时间占比,队列选有界,拒绝策略看具体业务场景 3. 不懂,猜可能是获取时其它线程并发修改? 4. cas栈顶元素,注意判空。后半问板子 5. 链式调用 .then() 三 1. 10种是真逆天,真就八股文呗。最左前缀只要讲清楚b+树索引的原理就很好答 2. 该拆表了。。子查询能优化,但10亿表长下还是会慢 3. 没见过。但是redis治理本就是平时不容忽视的一环,包括大key热key连接数key数量等,删一个key能把集群崩掉,说明这方面工作已经欠缺到一定程度了。。 4. 拆开分析。redis没有回滚机制不满足a,没有a就满足不了c,内存读写单线程没有i的概念,持久化策略无法完全防止数据丢失所以不满足d。综上redis事务acid皆不满足 5. 旁路 双删 监听binlog。秒杀场景一般旁路即可,一致性要求高可以上双删 6. 不会。如果服务端收到请求时slot正在迁移,会检查该部分数据是否已经被迁走。是则响应ASK重定向目标实例,否则直接返回数据 7. 查日志→定位→复现→分析原因。隔离级别设为rr,会默认以临键锁作为行锁的物理实现,锁间隙防插入从而在一定程度上避免幻读(不能完全防止) 四 1. 回滚 2. 参考snowflake 3. 不知道 4. 从两方面答,生产者→broker阶段依赖刷盘和ack,结合不同ack参数(异步半同步全同步)讲;消费者丢失消息的情况,可以等业务返回再手动提交offset,但要求下游业务幂等 5. 没用过dubbo,降级配fallback方法,指标达阈值自动触发降级策略,也可手动配置降级开关 6. 无分区全保。有分区保ap,购物车距离订单和支付还有一段距离,阻塞用户购物车操作影响体验 五 1. 风控领域的范畴,很复杂不是几句话能说明白的。可以从人机验证、ip检测、截/录屏检测、黑名单、用户画像等角度聊 2. rmq延时队列。定时任务扫表也是一种方案,但对大表开销高 3. 黑马点评 4. 前半问黑马点评,redisson是客户端本质上是多一层封装,将一系列操作打包进lua脚本中。hash存线程id实现可重入,zset存线程id实现公平锁
查看28道真题和解析
点赞 评论 收藏
分享
记录一下.&nbsp;总共4题,过题情况4/4第一题:给一个年份,输出一个比当前年份大,每一位均不相等的年份。数据10组以内,年份不超过6位数第二题:给n个二维坐标点,每个点有个ri,如果某个点与当前点距离不超过ri,则激活当前点时也会激活这个ri距离内的其他点,激活可以连锁。问激活任意一个点之后可以激活的最多总点数。n&lt;=100第三题:给一个序列,每次可以花费1的代价让一个元素+1,求把序列变成单峰序列的最小代价。n&lt;=10^5第四题:n个点,每个点有一个数字a[i],有m条边,保证边是从编号小的点连向编号大的点,每条边有权值b[i],表示走这条边至少需要b[i]个补给包。初始时补给包为0个,从1号点出发,每次从一个点i出发,可以选择拿不超过a[i]个补给包,拿了就不能丢,走过边也不会消耗补给包。问能不能走到终点n,如果可以,走到终点n时身上补给包最少是多少个。n&lt;=10^5,m&lt;=5*10^5第一题就是不断重复+1枚举年份,暴力判断即可。值得注意的是,测试数据的输入格式和样例的格式似乎有不同,我使用python写第一题直接在输入这就报错了,最后写了两种输入,用try给干过去了。如果直接用cpp的scanf应该不会有这个问题。第二题直接枚举初始激活点,然后暴力dfs每个次级激活点即可。这样做最坏是O(n^3)的,python直接超时了,优化了一下,不难发现,如果点x被点y激活,那么初始激活x的答案肯定&lt;=初始激活y的答案,因此一个点如果在dfs中被找过,那就不需要将它作为初始激活点了,这样复杂度降低到O(n^2)第三题考虑设f[i]表示前i个数字组成递增序列的最小代价,g[i]表示从i开始到最后一个数字组成递减序列的最小代价,顺便记录达到最小代价时位置i的数字是多少,最后枚举峰的位置,统计代价最小值即可。复杂度O(n)第四题,如果直接按照题意硬做,我是不会的,因为选取更少的补给包这个决策是不利于最后走到n这个目标的。先考虑判断有无解该怎么做,可以发现,找到最大的边权,最终答案肯定不超过这个边权,设为mx。则我们可以在走的过程中进行贪心,记录f[i]表示走到位置i时,能获得的最大补给包数量。按顺序枚举点i(注意,这样枚举肯定是无后效性的,因为边都是小编号连向大编号),然后枚举点i的出边,假设有边(i,y,b[x]),如果f[i]&gt;=b[x]说明这条边能走,则更新f[y]为max(f[y],f[i]+a[y]),注意,f[y]的值不应该超过mx,最后验证f[n]是否有正常转移过来的值即可判断是否有解。不难发现,如果我们限制了补给包的上限,我们就可以判断在这个上限下有没有解,且如果上限c1是可行的,那么对于任意c2&gt;c1都是可行的,存在一个边界区分有无解,这是很好的性质,可以直接二分补给包上限,用上面的判定决定往左还是往右二分即可。复杂度O((n+m)logm)总体来说还是稍微有点trick的,前三题贪图代码简单直接用python写了,第四题怕py超时,用cpp过了。整体写起来需要想的东西比较多,只能说有几个月没写算法题了,略有生疏。希望给个面试。。。
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
第一次写评论。题目做得很惨,全是一些稀奇古怪的Bug,鉴定为长时间没写过代码导致的。大致记录一下我的做题经历。第一题:求幸运年份。直接暴力就可以写,注意要输入的年份先加一后判断,否则的话一个测试点都过不了。很水的一道题,大概花了7分钟。第二道:求开灯数量。我的首选思路是使用队列,笔试的时候也采用的这个方案。先找到这些灯开启后会直接影响哪些灯的开关,再使用队列求解。这道题要背大锅,卡了我一个多小时,一直段错误,给我改得怀疑人生,后来一行一行打印发现数组忘记加[]了,然后,紧急修改了后对了0.9多,实在没精力改这个题了。第三题:求最小的驼峰数组。这道题维护一个前缀数组和一个后缀数组就好了,然后分别枚举峰值的位置,判断最小值。这道题比上一道简直顺了太多了,至少我只是忘记查找的是最小值了,还有maxs的默认值太小导致得不到正确解等小问题,大概花了27分钟。第四道题:求能否到达n号营地。我的思路是广搜或者动态规划(?没试过)。还是时间不够的锅。我匆匆读了一遍题,看了眼样例就开始写了,样例过了就开交,然后就G了,仔细一看,发现是广搜时没有记录路径导致的路径上存在剩余的补给,而且忘记输出-1了!太抽象了,然后只有3分钟了,放弃了,-1都没输出。但是就我目前对于广搜的思路来讲的话可能会在某些测试点上超时?不确定。
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-23 16:42
已编辑
正文:&nbsp;我最初只是“随手投”,没想到三周后,邮箱里躺着拼多多跨境基础平台的实习意向书。下面这段经历,写给正在犹豫要不要点岗位链接的你。第一轮是电话突击,40&nbsp;分钟。面试官开场没寒暄,直接甩场景:“黑五大促,同一秒内&nbsp;100&nbsp;万&nbsp;QPS&nbsp;涌进支付网关,下游库存接口&nbsp;5&nbsp;ms&nbsp;超时,怎么保证订单不崩?”我先用令牌桶&nbsp;+&nbsp;熔断三板斧回答,他继续深挖:“令牌桶在容器里扩缩时,令牌漂移怎么解决?”我愣了两秒,想到用&nbsp;Redis&nbsp;+&nbsp;Lua&nbsp;脚本把桶状态外置,面试官轻笑:“行,下一轮见。”挂断后我才反应过来——他们真的在复现黑五流量,问题不是八股文,是现场拆弹。第二轮视频面,屏幕共享&nbsp;IDE。题目看似简单:写一个支持&nbsp;10&nbsp;亿级订单号生成器,全局递增且可反解时间。我先用雪花算法起手,被追问“时钟回拨怎么办”;改用号段模式,又被问“段用完的瞬间怎么无锁切换”。最后我把段状态放进&nbsp;etcd&nbsp;并加了&nbsp;CAS&nbsp;重试,面试官点点头,现场跑起压测:100&nbsp;并发、200&nbsp;万&nbsp;ID/s,CPU&nbsp;只涨了&nbsp;8%,他当场敲下“pass”。第三轮是&nbsp;leader&nbsp;面,不谈技术,只聊业务:“如果让你在&nbsp;K8s&nbsp;上把一次灰度发布从&nbsp;30&nbsp;分钟压到&nbsp;5&nbsp;分钟,你砍哪几步?”我把镜像预热、滚动批次、健康探测、流量染色全拆开讲,leader&nbsp;在白板画了一根时间轴,每砍一刀就擦掉一段,最后停在&nbsp;4&nbsp;分&nbsp;40&nbsp;秒。他合上笔盖:“下周&nbsp;HR&nbsp;跟你聊入职。”HR&nbsp;面只用&nbsp;15&nbsp;分钟,只确认两件事:能否接受&nbsp;11-11-6,以及什么时候能来。我说“能”,对面直接发口头&nbsp;offer,三天后收到正式邮件。为什么我愿意去?1.&nbsp;真刀真枪的全球流量:实习期间就能摸到&nbsp;200ms&nbsp;跨洲延迟的网关、单集群&nbsp;5k+&nbsp;Pod&nbsp;的&nbsp;K8s。2.&nbsp;技术栈全是下一代:Rust&nbsp;网关、RISC-V&nbsp;镜像、Flink&nbsp;流批一体,简历直接镀金。3.&nbsp;转正概率高:组里&nbsp;80%&nbsp;实习生留用,且&nbsp;base&nbsp;按正式员工算。如果你也想要同款经历,把简历扔进这个链接:https://careers.pddglobalhr.com/campus/grad/detail?t=Cqt5jrBuxn系统会自动把简历推给“跨境基础平台”组,HR&nbsp;承诺&nbsp;48&nbsp;小时内必有反馈。拼多多跨境不画饼,只给舞台。下一封&nbsp;offer&nbsp;邮件,也许就是你的。
查看6道真题和解析
点赞 评论 收藏
分享
上来就正常自我介绍实习经历,之前做的是什么,学到了什么看你没做多久,为什么(单纯觉得不合适,自己干完项目就跑了)给你个电商场景题(订单,支付,退款),去提取出核心测试点,编写用例写sql语句,两个表简单join联表查询,加个distinct避免重复就可以了算法题,二分查找,一个全是两两配对的重复元素数组,找出那个单独存在的数(我自己太抽象了,最开始思考了两分钟,给他说压栈😂,但是后边自己逗笑了,我这和遍历没区别啊,然后就想到了二分查找,但是太久没写了,自己搁草稿本上验证了几分钟正确性,然后写到一半,那大哥嫌我写的慢,我刚开始写双指针那里就让我卡了,说时间紧,任务重,还是太久不去写,纯菜了,不验证那几分钟应该就写好了)问你做测试,接口测试用过什么软件(Postman,jmeter)你怎么用jmeter做的接口测试(就正常创建线程组,创建请求,填地址和方式,请求内容之类的)你用jmeter做断言是怎么做的(没用过他这功能)前后端是怎么交互的然后就是反问了其实难度不怎么高,都很基础,只是我确实没想到要手撕算法题,太久不写变菜了(我也没想过测试也要手撕😂)不过那个面试官是真的没啥生气,感觉他死气沉沉的,声音很小,感觉是被10106的生活摧残的没有力气了😢😢😢
查看9道真题和解析
点赞 评论 收藏
分享
分享我的面试经验
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务