字节三面凉经

一面8.30
自我介绍。

自己感觉最熟悉的项目挑一个讲讲。

项目大概问了分布式锁实现,分布式事务怎么理解,订单事务的实现流程,CAP理论,BASE理论理解。

八股:
http 和https区别
mysql隔离级别,解决什么问题,怎么实现;abc联合索引,a = , b > , c in,怎么走索引,怎么优化
redis数据类型,应用场景和实现
go语言mutex实现,channel通信,goroutine通信机制。

然后就是手撕
数字字符串s,可选数组arr,(0 <= arr[i] <= 9) 求由arr中数字组成的最大数字,
比如s = 23121, arr= [2, 4, 9],答案就是22999。(写了20+分钟过了样例)还是菜了。

---------------------------------------
二面拖了蛮久,第一次约面9.5和TME的笔试冲突,然后就推到了9.9,

二面的话,上来问了我平时科研的方向,科研做的东西。

我在自我介绍时提过我对go语言设计风格十分喜欢,然后就开始详聊go设计方面的,GMP,goutine的理解,接口,设计模式,都聊了聊。

聊完就开始做题了,lk第4题,开始写了O(n), 写的过程想到可以Olgn,写完On又写了一边Olgn。都是自己输入样例测试。

反问,什么小部门,什么业务,进去之后会从大部门分配还是直接去他们部门(直接进小部门)。
---------------------------------------
9.13 三面
上来问项目,但是没有让我讲项目的实现,直接问你做项目的意义是什么,因为没有实习,所以项目是一个偏学习的分布式电商系统,用gin,gorm,grpc,还有各种微服务组件一起实现的,就回答了学习高并发场景,然后积累技术栈,也算是增加实践经验,然后问你说你高并发,具体项目做了之后能承受多少并发,平时学习太偏重理论,确实没有做过压测,然后有点懵了,只能根据经验说大概数万QPS,我觉得大概这两个字可能触了雷,面试官看出我可能没有压测。之后想给面试官讲项目实现难点和细节,他也不爱听了,直接打断吟唱。

然后问了一个场景题,商品列表,每个商品有自己的ID,如何防止用户通过构造URL的方式来获取商品详情。

问了1亿个数字如何找top 100, 

问了CDN传输协议,浏览器缓存策略

RPC框架有哪些组件

序列化协议 protobuf,json 各自用在什么场景

手撕简单的差分数组问题。 抖音日志三列,uid, logintime, logouttime, 统计每个时间点用户在在线数,

-----------------------------------------
许愿hr面,虽然90%概率凉凉,后续会继续更进
全部评论
佬 有消息了吗
点赞 回复 分享
发布于 2024-09-19 09:15 广东
过了样例是只需要过样例还是还有测试但是没过,没面过字节不太懂
点赞 回复 分享
发布于 2024-09-10 04:18 广东
佬 算法是回溯做的吗
点赞 回复 分享
发布于 2024-09-01 03:24 湖北

相关推荐

07-28 15:15
门头沟学院 Java
面试八股环节还好,但是我是力扣战士,面试官让在编译器上写代码类都不会怎么写了,两个算法,字母异位词和策略模式,只写了方法,力扣战士凉透了,希望大家平时还是要在编译器上做题策略模式等一些设计模式,希望大家也进行默写,别像我一样会背不会写字母异位词import&nbsp;java.util.*;public&nbsp;class&nbsp;Main&nbsp;{public&nbsp;static&nbsp;List&lt;List&lt;String&gt;&gt;&nbsp;groupAnagrams(String[]&nbsp;strs)&nbsp;{//&nbsp;用于存储分组结果的映射,键为排序后的字符串,值为对应的字符串列表Map&lt;String,&nbsp;List&lt;String&gt;&gt;&nbsp;anagramGroups&nbsp;=&nbsp;new&nbsp;HashMap&lt;&gt;();for&nbsp;(String&nbsp;s&nbsp;:&nbsp;strs)&nbsp;{//&nbsp;将字符串转换为字符数组并排序char[]&nbsp;chars&nbsp;=&nbsp;s.toCharArray();Arrays.sort(chars);String&nbsp;sortedStr&nbsp;=&nbsp;new&nbsp;String(chars);//&nbsp;如果映射中不存在该键,则创建一个新的列表anagramGroups.computeIfAbsent(sortedStr,&nbsp;k&nbsp;-&gt;&nbsp;new&nbsp;ArrayList&lt;&gt;());//&nbsp;将当前字符串添加到对应的列表中anagramGroups.get(sortedStr).add(s);}//&nbsp;返回映射中的所有值(即所有分组)return&nbsp;new&nbsp;ArrayList&lt;&gt;(anagramGroups.values());}public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{//&nbsp;示例输入String[]&nbsp;strs&nbsp;=&nbsp;{&quot;eat&quot;,&nbsp;&quot;tea&quot;,&nbsp;&quot;tan&quot;,&nbsp;&quot;ate&quot;,&nbsp;&quot;nat&quot;,&nbsp;&quot;bat&quot;};//&nbsp;调用方法获取分组结果List&lt;List&lt;String&gt;&gt;&nbsp;result&nbsp;=&nbsp;groupAnagrams(strs);//&nbsp;输出结果for&nbsp;(List&lt;String&gt;&nbsp;group&nbsp;:&nbsp;result)&nbsp;{System.out.println(group);}}}策略模式//&nbsp;支付策略接口interface&nbsp;PaymentStrategy&nbsp;{void&nbsp;pay(double&nbsp;amount);}//&nbsp;微信支付实现class&nbsp;WechatPay&nbsp;implements&nbsp;PaymentStrategy&nbsp;{@Overridepublic&nbsp;void&nbsp;pay(double&nbsp;amount)&nbsp;{System.out.println(&quot;使用微信支付:&quot;&nbsp;+&nbsp;amount&nbsp;+&nbsp;&quot;元&quot;);//&nbsp;微信支付具体实现逻辑}}//&nbsp;支付宝实现class&nbsp;Alipay&nbsp;implements&nbsp;PaymentStrategy&nbsp;{@Overridepublic&nbsp;void&nbsp;pay(double&nbsp;amount)&nbsp;{System.out.println(&quot;使用支付宝支付:&quot;&nbsp;+&nbsp;amount&nbsp;+&nbsp;&quot;元&quot;);//&nbsp;支付宝支付具体实现逻辑}}//&nbsp;银行卡支付实现class&nbsp;BankCardPay&nbsp;implements&nbsp;PaymentStrategy&nbsp;{@Overridepublic&nbsp;void&nbsp;pay(double&nbsp;amount)&nbsp;{System.out.println(&quot;使用银行卡支付:&quot;&nbsp;+&nbsp;amount&nbsp;+&nbsp;&quot;元&quot;);//&nbsp;银行卡支付具体实现逻辑}}//&nbsp;支付上下文(策略持有者)class&nbsp;PaymentContext&nbsp;{private&nbsp;PaymentStrategy&nbsp;strategy;public&nbsp;PaymentContext(PaymentStrategy&nbsp;strategy)&nbsp;{this.strategy&nbsp;=&nbsp;strategy;}public&nbsp;void&nbsp;setStrategy(PaymentStrategy&nbsp;strategy)&nbsp;{this.strategy&nbsp;=&nbsp;strategy;}public&nbsp;void&nbsp;executePayment(double&nbsp;amount)&nbsp;{strategy.pay(amount);}}//&nbsp;主类和测试代码public&nbsp;class&nbsp;Main&nbsp;{public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{//&nbsp;创建支付上下文PaymentContext&nbsp;context&nbsp;=&nbsp;new&nbsp;PaymentContext(new&nbsp;WechatPay());//&nbsp;使用微信支付context.executePayment(100.0);//&nbsp;切换为支付宝支付context.setStrategy(new&nbsp;Alipay());context.executePayment(200.0);//&nbsp;切换为银行卡支付context.setStrategy(new&nbsp;BankCardPay());context.executePayment(300.0);}}
查看2道真题和解析
点赞 评论 收藏
分享
评论
8
64
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务