SmartX面经

SmartX面经

我记不太到了,按着记忆写一写

一面

一面非常友好,聊了1h,问的东西都很基础,算法讲思路然后发邮件

进程线程区别:资源 调度 大小 开销 通信 亲缘

进程通信,共享内存实现方式,线程通信

输入baidu.com网络层面会发生什么

http请求格式 tcp协议作用和意义 ip协议作用和意义

哈希实现,哈希冲突,设计实现用一个len=1000的数组存一个1000个人名,说一下流程,怎么解决哈希碰撞:加标志位

堆排流程,稳定性

算法题:字符串的四则运算,限定了格式,所以很简单

二面

二面问了半小时emmmm感觉我答得不是很全面

git add 了三个文件 commit后发现少了一个,要怎么办?我说的是再git add filename呗,面试官表示,不行必须要在一个commit里,我说我没这样的需求阿巴阿巴(应该是git log看日志找commit id然后git reset --hard commit id这样会回滚,同时工作区代码的改动也会回滚,如果不想要工作区代码回滚,用git reset --soft HEAD^HEAD^的意思是上一个版本,也可以写成HEAD~1,如果你进行了2次commit,想都撤回,可以使用HEAD~2)

平时用过哪些linux系统?ubuntu怎么配静态网关?老实回答我没配过,但可以用ip命令配置,真正要配可以ip -h看下帮助orz

我写了个代码文件,要怎么看文件大小?du -h和ls -sh都可以看

项目数据的大小,用了数据库吗?用过什么数据库?mysql和mongodb

两个数据库有什么区别,项目中如何选择?我说我当时不care哪种数据库

本科数据库上了哪些东西:数据库的意义和历史,关系模型,编程,事务与锁,NOSQL

讲下ACID里的I:隔离性

数据库事务的隔离级别:我回答的是解决脏读,解决幻读,可重复读,可串行化(严谨应该说,读取未提交,读取已提交,可重复度,可串行化)

  1. 读未提交,其隔离级别最低,允许脏读。换句话说就是,如果一个事务正在处理某一数据,并对其进行了更新,但是同时没有提交事务,允许另一个事务也可以访问

  2. 读已提交,和读未提交的区别就是。读未提交可以读取到别人没有提交的数据,但是读已提交只能读取到别人提交后的值,事务进行的中间值不会读取到

  3. 可重复读,简单来说就是事务处理过程中多次读取同一个数据的时候,这个值不会发生改变,其值都和第一次查询到的数据是一致的

  4. 可串行化,是最严格的隔离级别,他要求所有的事务都被串行执行,既事务只能一个接一个的进行处理,不能并发执行

mysql的数据库引擎,我回的是InnoDB(因为我只知道这个orz)问这是数据库的默认引擎吗?我只能硬着头皮说我只见过这个,那大概率是的。(实际上确实Innodb是mysql默认引擎,但除了这个还有MyISAM存储引擎,MEMORY存储引擎,Archive存储引擎)

如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择

如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率

如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果

如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive

算法题:

  1. 实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数

  2. 1 - N 中,求数字 x ( 0-9 中的一个数值) 出现的次数。 如果一个数字中,x出现多次就计算为多次。 比如 1-2593, 求数字5出现的次数,其中 555 是在这个范围内的,这个数字里 5 算出现了3次。 要求代码的算法复杂度尽可能的低。


#面经##校招##SmartX##算法工程师#
全部评论
我猜是实习
1 回复
分享
发布于 2021-04-24 12:31
是实习还是校招哇
点赞 回复
分享
发布于 2021-01-11 22:23
滴滴
校招火热招聘中
官网直投

相关推荐

4月3日下午14.00美团一面。忘记录音了,简单回忆一下吧。网上对美团面试官的评价太中肯了,面试美团完全就是一种享受。开始:1. 自我介绍(非科班)2. 进程与线程的区别3. List,Set 和 Map 的区别4. ArrayList 和 LinkedList 区别。你一般用 LinkedList 吗?ArrayList 和 LinkedList 分别适用于什么场景?5. HashMap 的底层实现,什么时候链表转为红黑树,为什么要将链表转为红黑树,线程安全吗?6. HashMap 什么时候扩容,每次扩容多少?7. Mysql 中有哪些索引8. 为什么 InnoDB 要分聚簇索引和非聚簇索引?它们有什么区别?9. 为什么主键索引要设置为自增?10. 事务的四大特性11. 隔离级别有哪些,为什么要设置隔离级别?12. 你怎么调优的?(简历中写了有 SQL 调优经验)13. Redis 和 Mysql 的区别14. 项目如何使用的 Redis?(拷打项目)15. 你说你只部署了一台服务器,那能不能不用 Redis?(场景题)16. 知道 NoSQL 吗?数据库分为哪几种?Mysql 和 Redis 属于哪种?17. 你为什么要采用 DDD 架构,和 MVC 有什么区别呢?(拷打项目)18. 你说 Mysql 和 ES 读写分离,有延迟吗?项目能接受延迟吗?(考察分析项目需求)19. 说一下 GC20. 垃圾回收算法21. 类加载过程22. 分代垃圾回收(年轻代和老年代),除了这两代还有别的吗?(永久代,和方法区实现有关)23. 给你一个十万数据量的表,如何设置索引?(还是针对项目的场景题)24. 你的项目的表有多大?经过索引优化之后,性能较之前改善了多少?(拷打项目)25. 你们做这个项目的背景是什么?(一个 OpenAI 相关的项目)26. 你们这个项目怎么识别用户身份的?......还有一些其他的场景题,写不下了。手撕:1. 链表判环。2. 小美(经典小美)给一个数组和操作次数 k,每次可以选数组中的一个数 +1 或 -1,问 k 次操作最多能得到多少个 0。反问:1. 部门做什么?美团app的搜索功能。2. 我的不足?用自己的话概括性表达出来,还有就是要多去思考为什么要这么做?还能怎么做?
点赞 评论 收藏
转发
6 68 评论
分享
牛客网
牛客企业服务