golang工程师精选面经合集
0家公司
0篇面经
最新 热门
/discuss/753986049566633984/feed/main/detail/7c5b52bb9f514249a8bbb6b2a58528f9/feed/main/detail/7115df5ece10438788ed8b6d148a39e2/feed/main/detail/4214c9b35558446c81dcc970c0018d7b/feed/main/detail/57370efb2eb6416db9e2a23dd165a3d4/feed/main/detail/086c49f0265b4ad7a2de52be64f52897
05-11 10:01
已编辑
未填写教育信息 golang
合合信息GO后端开发OC
我们学go的都是香香甜甜的:已开源准备实习期间全部面经和实习准备的内容
点赞 评论 收藏
分享
/feed/main/detail/1af280d38084409bb7fa802f0ea224a1
沐瞳Golang开发秋招一面
#牛客AI配图神器#面试时间:2024-09-11面试时长:40分钟项目提问● 这个基于数据库乐观锁,如何实现?● 用户量变大之后,如何优化?● 这个Lua脚本如何写的?● 切换成Redis如何实现乐观锁?● 假设锁的超时时间设置成10s,一个线程正常执行1s,那要是一个任务执行11s,另一个线程拿锁会发生什么?● 往key加入线程id,那分布式环境下?Golang1. Channel底层实现a. 写等待队列已有goroutine,过来另一个写命令,如何?b. 数组有数据且写等待队列有goroutine,过来另一个读命令,如何?2. Mutex底层实现a. 介绍自旋?b. 介绍atomic包叭i. atomic包是如何实现的?ii. 具体什么硬件指令实现?手撕二叉树右视图func RightD(root *Tree) []int {    queue := []*Tree{}    front, rear := 0, 0    last := root    res := []int{}    queue = append(queue, root)    rear++    for front != rear {        node := queue[front]        front++        if node.Left != nil {            queue = append(queue, node.Left)            rear++        }        if node.Right != nil {            queue = append(queue, node.Right)            rear++        }        if node == last {            res = append(res, node.Data)            last = queue[rear-1]        }    }    return res}type Tree struct {    Data        int    Left, Right *Tree}�反问
沐瞳科技一面14人在聊 查看14道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/3a95d907280c49aca48ad1e5dc59f276/feed/main/detail/de57810403f94be8b9645d95739cbc28/feed/main/detail/9bc7ad28778f446c9f8125ccedc0dbc3/feed/main/detail/7d57ab99dd6f4a36a14bebf8a2592dc7/feed/main/detail/31fe26eed2cc49509b0b4f0943c680ef/feed/main/detail/3a63581a130e416fb42e3f75e02e319b/feed/main/detail/4135f780c1e541e7b86cb2fb2b8b1dea/feed/main/detail/096003f8222949c999c2f2eadb263f4f
拼多多 后端 二面 压力-拷打-羞辱(😭)
拼多多 暑期实习 二面,总共用时1h 左右, 被面试官疯狂拷打, 估计凉凉。首先介绍项目, 对方完全不感兴趣: 你做的这些和后端开发有什么关系?我简单介绍了下后端相关的,面试官可能觉得太简单了,没有继续问。然后就是痛苦的手撕拷打,持续50mins 左右。问题1: 给你两个班级, 每个班级共有 k 个人,你是班主任,要从每个班级中挑出1个人,使得他们的身高差最小。回答: 先排序, 然后遍历A班级,二分查找B班级中的第一个大于等于(lower_bound)A班级里的那个 的位置,然后比较那个位置和前一个位置。面试官和我不太同频,问我为什么要找第一个大于等于?二分查找不就是找一个位置吗? 面试官笑眯眯的问我是第一次接触二分搜索吗?然后计算时间复杂度。感觉完全不同频。问还有更优解法吗?回答双指针,还是固定遍历A, 然后另一个指针从B开始找比A大的,然后在和前一个也比较,取最小的。这样就是O(n).面试官提示一下,不要局限在当前这个和前一个比较,换种思路。 然后我一直在思考,对方问我双指针要怎么初始化?  因为我还没想好,就没回答。面试官: 双指针要怎么初始化?这你都不懂吗。。。? 怎么不回答我。我说新思路还没想好,面试官表示刚才那种思路的双指针要怎么初始化? 答:都初始化在第一个位置。问题2: 两个班级, 换成 N 个班级, 每个班级选1个人, 要求算出来的人里的 max - min 最小。答没思路, 面试官提示下多个指针? 考虑下指针应该如何移动。我想了想,移动最小的那个指针,直到所有指针都走到末尾,每次移动,从这个N个人里面取最大的,最小的,比较。然后算时间复杂度:n个班,每个班k个人,  我想整体的数据规模是 N = n*k , 然后我用 N 去后续表示。面试官:你为什要定义新的符号N? 算完时间复杂度,问我“从这个N个人里面取最大的,最小的”这部分可以优化吗? 我回答可以使用 map (cpp里的),面试官表示你直接说数据结构,不要说语言中的名字。问这个的时间复杂度,答logn面试官:那你开始写吧。写了大概 3 分钟。 他看了眼。问题3: ping 100ms  , curl http://1.2.3.4:8080/hello  需要多少时间?这里我考虑了4次挥手, 面试官:需要考虑这个吗?答 200ms. 问题4: 直播间,打赏金额最高的100个用户? 你应该如何实现维护?我回答使用 redis 的 zset ,  可以高效的获取top 100.面试官问:这样有什么问题吗? 如果用户特别多的情况。我想了一会,也没想出什么问题,回答没什么思路。面试官:用户太多了会有 大 key 问题, zset 删除的时候会阻塞几秒。 (我不太理解)面试官:你应该考虑怎么优化?答: string 配合 zset 使用, string kv 中存 user, money,  而 zset 中只维护 top 100 的。同时更新这俩。最后, 反问部门业务:拼多多直播带货。技术栈: 面试官看我的简历里面,cpp 太底层了我们这边不用,golang 也不用,主要是 java , 然后 redis, mysql, kafka这些。面试官问我懂不懂二分, 我当时多少有点生气💢, 不过总的来说面试官人还不错,还算友善,给了很多引导。#牛客创作赏金赛##拼多多#
查看13道真题和解析 牛客创作赏金赛
点赞 评论 收藏
分享
/feed/main/detail/223f0bafe73a4f0cb557d6a0f687df38/discuss/744935316884033536/discuss/744872378756345856/discuss/744601703298666496
厦门比特恐龙科技golang面经
点赞 评论 收藏
分享
/feed/main/detail/eab60701403f4012945f8fe989a0ef91
玩命加载中
写面经
发动态
发动态
发帖子
写文章

全站热榜

更多
牛客网
牛客企业服务