游卡笔试寄了

算是我第一次正规的笔试,心理压力较大。

校园招聘看到的春招岗位,游戏服务器开发。我开始问有没有go的岗,hr说有(我在boss没看到),随即加了微信,很快被捞了,感谢hr。

笔试23道题,15单选,5多选,3算法,时间一个小时半,就是牛客网的笔试系统。

选择题我做的有点懵,有的知识已经忘了,还有一些没涉及过的领域题。有一些操作系统的计算题,cpu轮转还有LRU算法算缺页数的,梦回408,选择做了好久,应该快40分钟。。

说几道记得的:

- 匹配空行的正则表达式(实则是选出错误的正则表达式,正则都是查的 蒙了)

- tcp的ack和syn会放在一个包中吗(不能,ack和fin可以)

- 一块一瓶水 三个瓶子换一瓶水 十块钱可以喝几瓶

- Raid10相比raid5的优势。(更安全,但效率低,成本高)

- 不属于应用层的网络攻击(DDOS)

三道编程题a了两道,最后时间不够了,第三题贪心都要出来了,哎,疏于练习

我全是用go写的

### 第一题:给定一个二维数组 合并数组所有重叠部分

应该是leecode的2580,开始我还理解错了,解了半天

```go

func mergeArrays(arr [][]int) [][]int {

if len(arr) == 0 {

return nil

}

// 对二维数组按照起始值进行排序

sort.Slice(arr, func(i, j int) bool {

return arr[i][0] < arr[j][0]

})

result := make([][]int, 0)

current := arr[0]

for i := 1; i < len(arr); i++ {

next := arr[i]

// 如果当前区间的结束值大于等于下一个区间的起始值,则合并区间

if current[1] >= next[0] {

current[1] = max(current[1], next[1]) // 更新当前区间的结束值

} else {

result = append(result, current) // 将当前区间加入结果

current = next // 更新当前区间为下一个区间

}

}

result = append(result, current) // 将最后一个区间加入结果

return result

}

func max(a, b int) int {

if a > b {

return a

}

return b

}

```

### 第二题: 输入字串符,检测是ipv4还是ipv6,都不是返回neither

用了go的net包,这题还是挺轻松的,

```go

func checkIP(input string) string {

ip := net.ParseIP(input)

if ip == nil {

return "Neither"

}

if ip.To4() != nil {

return "IPv4"

} else if ip.To16() != nil {

return "IPv6"

}

return "Neither"

}

```

第三题:一个地方连续n天长不同数量西瓜 西瓜会过期 一天吃一个 没过期的可以以后吃 给两个数组 西瓜生成数和过期天数 输出可以吃到多少个西瓜

贪心失败了

```go

func melons(watermelon []int, expire []int) int {

// 记录每一天可用的西瓜数量

available := make([]int, len(watermelon))

// 记录已吃的西瓜数量

eaten := 0

for i := 0; i < len(watermelon); i++ {

// 计算第 i 天可以吃的西瓜数量

canEat := min(watermelon[i], available[i])

eaten += canEat

// 更新可用数量数组

for j := i + 1; j < min(i+expire[i]+1, len(available)); j++ {

available[j] += watermelon[i]

}

}

return eaten

}

```

破防了,这么简单没写出来。。应该一个case没过,差一点,没时间了

#游卡##golang##笔试##金三银四,你有感觉到吗##凉经#
全部评论
为什么说 tcp的ack和syn会放在一个包中吗(不能,ack和fin可以)? 第二次握手SYN和ACK不是放在一起吗
2 回复 分享
发布于 2024-04-05 00:20 广东
题量太大了吧
点赞 回复 分享
发布于 2024-08-22 20:06 上海

相关推荐

wuwuwuoow:校友好 1.相关课程这行可以删了 2.个人呢技能多看看别人简历怎么写,好的直接抄下来 3.项目看起来可能是团队的圣遗物?有上线吗?QPS 为啥才 300?我想象这个业务应该不复杂,可以在简历中添加如果优化接口提高 QPS 的 4.日志记录做的太复杂了,要考虑目前你的项目体量,日志直接用 log.info 啥的记录就好了,写入到本地文件。引入了太多技术,带来太多复杂性。还有为什么日志需要回滚?日志需要有这么高要求的一致性吗 5.为什么用 MinIO 做冷数据存储?MinIO 更适合做对象存储,而 MySQL 是存储结构化数据,他们的定位是不一样的。如果要存冷数据,一般也是存到 MySQL 中。比如一个线上的 MySQL,和一个做冷数据的 MySQL,可以用上 MyISAM 引擎加快写入性能,甚至不写 MySQL 也行,直接写到文件中 不过我想的是这个场景中,每天真的有这么多数据吗?每天少说也得几万、几十万条数据增长,才考虑冷热数据分离。 6.SpringSecurity 用起来不容易,面试可以问的东西却很多,不建议在简历上写这个 7.不设置 Redis 缓存,假设出现了数据不一致,那该怎么办呢? 8.排版注意一下,比如 minio MinIO,Mysql MySQL 9.再加个项目,看看牛客别人怎么写的,可以写个轮子项目
点赞 评论 收藏
分享
评论
2
10
分享

创作者周榜

更多
牛客网
牛客企业服务