目 录CONTENT

文章目录

滴滴用户增长技术部 | Go实习(OC)

如风
2023-09-26 / 0 评论 / 0 点赞 / 50 阅读 / 1,010 字

滴滴用户增长技术部 | Go实习一面(OC)

时间:2023-9-26 14:00-15:00 60min

  • 博客前后端都是自己做的吗?有没有做其他功能的增加?
  • **Java/C++的线程和GO的协程有什么区别?**操作系统的线程和协程的区别,数量关系是怎样的?
  • 为什么Go的协程比较轻量级?**从资源层次来看?**线程和协程的区别
  • slice和数组有什么区别?
  • 操作系统的进程有哪些信息?进程是什么东西?进程和线程之间的关系?进程和二进制文件是什么关系?
  • cgroups主要是用来做什么?具体是如何对资源做限制的?到达边界怎么处理的
  • 对数据库怎么优化的?在什么场景下优化?
  • 并发控制模块是如何设计的 ? 怎么控制速度的?
  • Go语言的锁底层是如何实现的?具体了解哪些原子指令?
  • Gin实现的http功能和自带的http包实现有什么区别?为什么同样可以实现相同的功能
  • 手撕:有三个队列,编号为1、2、3,现在要从队列中取任意数量的元素。要求:第一个元素从1号队列取,第二个元素从2号队列取,第三个元素从3号队列取,第四个元素从1号队列取…如果选中的队列中没有元素则从下一个编号对应的队列中取,3号队列的下一个队列是1号队列。
  • 反问:大部门是用户增长,一些营销活动,促销的项目,投放券单,邀请有奖励,一些推广的业务,租车业务,显示各个租车用户商的信息,给用户达成交易。

感觉这次面试面的不怎么好吧,有很多问题都没怎么回答上来,对于操作系统的问题,不知道该如何回答,感觉对面试官的问题都没太理解,庆幸的是这次手撕做出来了,还是很不错的。

再次幸运的是10min不到,HR电话通知面试通过了,约了第二天的二面!!

滴滴用户增长技术部 | Go实习二面

时间:2023-9-27 14:00-15:00 40min

  • 介绍一下青训营项目?

  • 用户的密码怎么加密的?使用的是什么加密方法

  • 对称加密和非对称加密?

  • 使用gin,gorm‘怎么对代码进行分层?代码怎么组织的?

  • 两段实习方向不一样,以后的规划?

  • 实习想要得到什么东西?

  • 进程和线程,协程的区别?

  • 介绍业务

一面手撕的实现

package main

import "fmt"

func main() {
	/*
		有三个队列,编号为1、2、3,现在要从队列中取任意数量的元素。
		要求:第一个元素从1号队列取,第二个元素从2号队列取,第三个元素从3号队列取,第四个元素从1号队列取...
		如果选中的队列中没有元素则从下一个编号对应的队列中取,3号队列的下一个队列是1号队列。
	*/
	arr1 := []int{1, 5}
	arr2 := []int{2}
	arr3 := []int{3, 4}
	res := help(arr1, arr2, arr3, 5)
	fmt.Println("res = ", res)
}

func help(arr1, arr2, arr3 []int, n int) []int {

	i := 0
	cnt := 0
	res := make([]int, 0)
	for cnt != n {
		if len(arr1) == 0 && len(arr2) == 0 && len(arr3) == 0 {
			break
		}
		if i == 0 {
			if len(arr1) == 0 {
				i++
				continue
			} else {
				res = append(res, arr1[0])
				arr1 = arr1[1:]
				cnt++
			}
		} else if i == 1 {
			if len(arr2) == 0 {
				i++
				continue
			} else {
				res = append(res, arr2[0])
				arr2 = arr2[1:]
				cnt++
			}
		} else {
			if len(arr3) == 0 {
				i = 0
				continue
			}
			res = append(res, arr3[0])
			arr3 = arr3[1:]
			cnt++
		}
		i = (i + 1) % 3
	}
	return res
}

0

评论区