自我介绍
多久开始看后端的,有没有感兴趣的点(我聊到了golang)
说说golang为什么好(我说了golang的GPM调度模型,静态、动态语言的区别)
说说https的过程,详细问了CA怎么去验证证书
聊聊mysql,索引,sql优化(优化这块我不太熟,有的点没想出来)
说了说我做的k8s项目
写一道题,在有序旋转数组中找到一个数(采取类似leetcode核心代码的模式):
有序数组arr可能经过一次旋转处理,也可能没有,且arr可能存在重复的数。例如,有序数组[1, 2, 3, 4, 5, 6, 7],可以旋转处理成[4, 5, 6, 7, 1, 2, 3]等。给定一个可能旋转过的有序数组arr,再给定一个数num,返回arr中是否含有num
关于旋转操作:可以简单的理解为把序列从某个位置切成两段然后交换位置
[要求]
期望复杂度为O(logn)。
题目类型为二分查找变种,我是提交一遍过的。
有什么要问他的(问了一下国际化主要做的业务是什么,他回答是面向东南亚、电商)
面试官等hr通知,说是一周内
二面面经(2021.1.29下午两点,1小时):
详细问了我的k8s项目,然后问了k8s主要是干什么的,为什么会出现这个系统
做一道题,关于股票价格(一个存放整数的一维数组),找到哪两天价格盈利是最大的,有的话输出:(前一天下标,后一天下标),没有的话输出:(-1,-1)
这道题不是核心代码提交模式,而是需要自己处理输入输出(幸亏之前钻研了一下),用例也是自己手动输入的,面试官给了几个用例
题目类型为动态规划,在面试官的提醒下将空间复杂度O(n)降至O(1),先说思路再写
问了数据库是怎么存储数据的,主要是mysql的InnoDB存储引擎,我说的很乱,提到一嘴Redis,就顺便把Redis的数据底层存储说了下
数据库的隔离级别
浏览器输入网址以后经历了什么
缓存使用的场景
cookie和session的区别
一个网页包含了哪些元素(也就是html文件包含哪些部分)
sql注入是什么,开发时要注意哪些安全问题(这个我确实不知道,瞎答)
有什么要问她的
详细问了我的k8s项目,然后问了k8s主要是干什么的,为什么会出现这个系统
做一道题,关于股票价格(一个存放整数的一维数组),找到哪两天价格盈利是最大的,有的话输出:(前一天下标,后一天下标),没有的话输出:(-1,-1)
这道题不是核心代码提交模式,而是需要自己处理输入输出(幸亏之前钻研了一下),用例也是自己手动输入的,面试官给了几个用例
题目类型为动态规划,在面试官的提醒下将空间复杂度O(n)降至O(1),先说思路再写
问了数据库是怎么存储数据的,主要是mysql的InnoDB存储引擎,我说的很乱,提到一嘴Redis,就顺便把Redis的数据底层存储说了下
数据库的隔离级别
浏览器输入网址以后经历了什么
缓存使用的场景
cookie和session的区别
一个网页包含了哪些元素(也就是html文件包含哪些部分)
sql注入是什么,开发时要注意哪些安全问题(这个我确实不知道,瞎答)
有什么要问她的
三面面经(2021.2.4下午两点,50分钟):
自我介绍
go语言的channel的实现原理
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
channel关闭以后,再往其发送或接收,会发生什么
go语言的并发问题,面试官输入了一段代码:
func main() {
for i := 0; i < 10; i++ {
go fmt.Println(i)
}
}
问会怎么输出。(我回答的不太好)
然后又问怎么改代码能让它顺序输出1.....9(我也没怎么写出来)
智力题:64匹马,8个赛道,找出最快的4匹马,只能看马在赛道之间的快慢,手上没有表来记时间,问最少比赛多少次可以找到最快4匹马
编程题:有一批隔板,其高度用数组表示,相邻两隔板之间距离均为1,隔板本身不占体积,问下了足够多的雨之后,隔板中最多能蓄多少水?
输入:[3,2,5,4,6,2] 输出: 18
解释:
3和5之间蓄水 3x2 = 6
5和6之间蓄水 5x2 = 10
6和2之间蓄水 2x1 = 2
图示:
|
| # # |
| # | # |
| # # | # | # |
| # | # | # | # | # |
| # | # | # | # | # |
一道可以使用单调栈的题,我算是写出来了(遇到了一些小问题,然后通过输出语句来debug找出来了),通过了一个样例,面试官也没有给更多的样例。
有什么要问他的(我问了业务方向及实习生怎么培养)
问我什么时间可以来,能实习多长
go语言的channel的实现原理
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
channel关闭以后,再往其发送或接收,会发生什么
go语言的并发问题,面试官输入了一段代码:
func main() {
for i := 0; i < 10; i++ {
go fmt.Println(i)
}
}
问会怎么输出。(我回答的不太好)
然后又问怎么改代码能让它顺序输出1.....9(我也没怎么写出来)
智力题:64匹马,8个赛道,找出最快的4匹马,只能看马在赛道之间的快慢,手上没有表来记时间,问最少比赛多少次可以找到最快4匹马
编程题:有一批隔板,其高度用数组表示,相邻两隔板之间距离均为1,隔板本身不占体积,问下了足够多的雨之后,隔板中最多能蓄多少水?
输入:[3,2,5,4,6,2] 输出: 18
解释:
3和5之间蓄水 3x2 = 6
5和6之间蓄水 5x2 = 10
6和2之间蓄水 2x1 = 2
图示:
|
| # # |
| # | # |
| # # | # | # |
| # | # | # | # | # |
| # | # | # | # | # |
一道可以使用单调栈的题,我算是写出来了(遇到了一些小问题,然后通过输出语句来debug找出来了),通过了一个样例,面试官也没有给更多的样例。
有什么要问他的(我问了业务方向及实习生怎么培养)
问我什么时间可以来,能实习多长
HR面面经(2021.2.7上午11点,电话面试,15分钟):
自我介绍
确认一下实习时间
简单聊聊自己大学期间技术栈的变化
详细说了自己在项目中所做的工作
面试官简要介绍了这个部门的业务
交代后续的流程
有什么要问他的
自我介绍
确认一下实习时间
简单聊聊自己大学期间技术栈的变化
详细说了自己在项目中所做的工作
面试官简要介绍了这个部门的业务
交代后续的流程
有什么要问他的
2月10日上午收到offer,等待入职
全部评论
(9) 回帖