沐瞳Golang开发秋招一面

#牛客AI配图神器#面试时间:2024-09-11
面试时长:40分钟

项目提问
● 这个基于数据库乐观锁,如何实现?
● 用户量变大之后,如何优化?
● 这个Lua脚本如何写的?
● 切换成Redis如何实现乐观锁?
● 假设锁的超时时间设置成10s,一个线程正常执行1s,那要是一个任务执行11s,另一个线程拿锁会发生什么?
● 往key加入线程id,那分布式环境下?

Golang
1. 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
}

反问
全部评论

相关推荐

07-14 12:22
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
1
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务