流程
- 自我介绍
- golang 八股文: • GMP 原理 • 协程和线程区别 • 带 buffer 和不带 channel 使用 • GC 原理 • 利于 gc 的最佳实践
- 十分钟写快排;
- 聊了一个项目:docker-compose 项目落地到 K8S ;
感受
- 首先,我面的是云原生岗位,亏我还重点看网络/docker/k8s ,结果这方面啥都没问,有点小蛋疼;
- 然后,Go 八股答的不好,尤其利于 GC 的最佳实践问题;
- 最后,当时说十分钟写快排,我脑子就已经宕机了(心态问题),根本没法集中注意力;
PS:事后我冷静下来,回忆思路大概花了 10+分钟,然后整个 coding 过程也就 15+分钟吧。
心态很重要!心态很重要!心态很重要!
func QuickSort(arr []int) {
if len(arr) == 0 {
return
}
fmt.Println(arr)
pv := 0
pl := 1
pr := len(arr) - 1
for pl <= pr {
if pv < pl {
// -- 右边
for arr[pv] < arr[pr] {
pr -= 1
}
arr[pv], arr[pr] = arr[pr], arr[pv]
pv = pr
pr -= 1
// fmt.Println(arr, pl, pr, pv)
} else if pv > pr {
// -- 左边
for arr[pv] > arr[pl] {
pl += 1
}
arr[pv], arr[pl] = arr[pl], arr[pv]
pv = pl
pl += 1
// fmt.Println(arr, pl, pr, pv)
}
}
QuickSort(arr[:pv])
QuickSort(arr[pv+1:])
}