# 👨🏫 来之【晚霞的眼睛】的分享
因为在原公司待的不是很开心,然后决定裸辞了(千万不要裸辞!!!一方面心理压力比较大。另一方面也可能会被压薪资) 裸辞之后没着急找工作,因为原先做的东西比较偏底层,所以也是学习了一段时间先拿小公司练练手,大厂问的东西无外乎项目、基础、算法,这些的话楼主推荐几本书,基本问的东西都在这里面了《Redis设计与实现》、《Mysql技术内幕 InnoDB存储引擎》、《TCP-IP详解卷一》、《HTTP权威指南》、《深入理解Linux内核》、《研磨设计模式》、《数据结构与算法分析-c语言描述》机械工业的那个 我这边是应聘go的开发,学习go的话推荐《Go并发编程实战》、林海的《Go源码解析》最好源码和书一起看
# 滴滴 自动驾驶Vovager
# 一面
主要是项目和部分基础知识这里记不太清了 算法 剑指63 股票问题 数组 动态规划
dp[i]=max(dp[i-1],num[i]-num[j])
func maxProfit(prices []int) int {
size := len(prices)
if size==0||size==1{
return 0
}
profit := 0
cost := prices[0]
for i := 1; i < size; i++ {
cost = min(prices[i], cost)
profit = max(profit, prices[i]-cost)
}
return profit
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
问了能不转py
# 二面
二面主要问了项目以及一道算法题和场景设计题,我个人觉得不具有总结性
# 三面
*epoll和poll的区别 三面送命了,顺时针打印矩阵,一般按层模拟就好了,我也不知道怎么脑子就抽了
func spiralOrder(matrix [][]int) []int {
if matrix == nil || len(matrix) == 0 || len(matrix) == 0 {
return []int{}
}
top := 0
hsize := len(matrix)
lsize := len(matrix[0])
left := 0
bottom := hsize - 1
right := lsize - 1
index := 0
x, y := 0, 0
sum := make([]int, hsize*lsize)
for bottom >= top && right >= left {
for x = left; x <= right; x++ {
sum[index] = matrix[top][x]
index++
}
for y = top + 1; y <= bottom; y++ {
sum[index] = matrix[y][right]
index++
}
if bottom > top && right > left {
for x = right - 1; x > left; x-- {
sum[index] = matrix[bottom][x]
index++
}
for y = bottom; y > top; y-- {
sum[index] = matrix[y][left]
index++
}
}
left++
right--
top++
bottom--
}
return sum
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40