字节校招cpp一面+二面
一面
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3 输出: true 示例 2: 输入: 5 / \ 1 4 / \ 3 6 输出: false 解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入: [ ['1','1','1','1','0'], ['1','1','0','1','0'], ['1','1','0','0','0'], ['0','0','0','0','0'] ] 输出: 1 示例 2: 输入: [ ['1','1','0','0','0'], ['1','1','0','0','0'], ['0','0','1','0','0'], ['0','0','0','1','1'] ] 输出: 3 解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。
b b+树
数据库隔离级别 默认级别 可重复读实现机制?
特权不同,运行在用户态下的程序不能直接访问操作系统内核数据结构和程序
用户态到内核态:
- 系统调用
- 异常
- 外围设备中断
- epoll 就绪链表运转机制?
- 文本编辑器敲回车键换行操作。操作系统层面解释。[考察中断?]
https://mp.weixin.qq.com/s/04BkLtnPBmmx6CtdQPXiRA二面
1 > 3 > 5 > null 2 > 4 > null 1 > 2 > 3 > 4 > 5 要求: 1. 不改变原链表的结构 2. 边界完整,代码可运行 进阶: 多链表 k个链表 n个节点 时间复杂度???
- 多线程范式? 进程 线程 协程?
- 牛客网这个请求过程? https? 牛客网面试这个网站不登录岂不是可以任意人访问,我写个脚本破坏一下?
- 同步 异步 阻塞 非阻塞
https://www.cnblogs.com/wlwl/p/10291397.html
五种IO的模型:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO和异步IO;前四种都是同步IO,在内核数据copy到用户空间时都是阻塞的。
阻塞IO和非阻塞IO的区别在于第一步,发起IO请求是否会被阻塞,如果会那就是传统的阻塞IO,如果不会那就是非阻塞IO。
同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO;如果不阻塞,而是操作系统帮你做完IO操作再将结果返回给你,那么就是异步IO
5. epoll 就绪链表工作机制