剑心三面
问题
- 线程和进程的区别
- 进程是通过什么机制隔离的
- 线程之间什么不是共享的
- 互斥锁是什么,上锁和解锁的过程是怎么样的
- 启动100个进程执行下面这段代码,输出的地址会不会是重复的,要怎么分析
int main(){ int a; printf("%p\n", &a); }
- 红黑树和avl树的区别和优缺点
题目
1
2
如何找到一个数组中出现>=一半的数,这个等于要特判,方法是首先判断是否刚好是一半,如果是的话假设最后一个数是这个数,然后统计他出现的次数,如果不是这个数,就把他去掉,问题转换成在剩余的数组中找超过一半的数
3
这题还挺有意思的,不过时间不够没写完,面试官说做法是正确的
总结
后面给我约线下的面试,我也不是很想去这家公司,而且网上也找不到薪资,问hr也不说,就没去了