秋招面试总结

2019.8.29 网易互娱一面

1.介绍c++左值和右值。介绍右值还讲到了类类型的将亡值。然后让介绍了一下move函数。给了几个左值和右值判断正确吗?

int a =1;
int &a = 1;
int &a = b;
int &&a = 1;
const int &a = 1;
const int &&a = 1;

2.写一个代码能判断大小端

3.new一个基础类型的指针,强转成类类型,调用会不会出错?

4.类类型的空指针调用函数可以么?分情况,涉及this指针就不可以。

5.图形学,八叉树的大概实现和应用,讲了一下空间搜索和分支定界。渲染,裁剪了解吗?讲了一下。

6.操作系统,为什么要弄虚拟内存?new之后是物理内存还是虚拟内存,又讲了一下页面置换。

7.计算机网络,socket知道吗?服务器accept之后就建立连接了吗?

8.算法题。定义边界相连的三角形集合称为“岛“,给一组三角形的点坐标如:(0, 1, 2), (0, 2, 3), (4, 5, 6);问有几个“岛”,例子是2个岛。(set并查集思想)

int calculate( set<set<int>> triangle) {
	set<set<int>> island;
	while (triangle.size()) {
		auto iter = triangle.begin();
		set<int> candidate = *iter;
		triangle.erase(iter);
		for (auto it = triangle.begin(); it != triangle.end(); ) {
			set<int> t;
			set_intersection(it->begin(), it->end(), candidate.begin(),
                 candidate.end(), inserter(t, t.begin()));
			if (t.size() == 2) {
				set_union(it->begin(), it->end(), candidate.begin(), 
                 candidate.end(), inserter(candidate, candidate.begin()));
				it = triangle.erase(it);
			}
			else {
				it++;
			}
		}
		island.insert(candidate);
	}
	return island.size();
}

NOTE:一开始写出如下的代码,一直提示一堆看不懂的错误,仔细检查发现,set_union比较的是两个set,是set1.begin(),set1.end(),set2.begin(),set2.end()。而这里的triangle是一个set<set<int>>,就算是triangle.begin()也是一个set而不是具体set当中的迭代器,所以输入参数错误。

set_union(triangle.begin(), triangle.end(), candidate.begin(), 
candidate.end(), inserter(candidate, candidate.begin()));

几天就通知二面,到10.11还没有二面。

收到二面,已签约,拒绝了。

 

2019.8.30 华为1面 2面 综合面

进来先介绍自己,让我讲讲项目,然后说有没有C++实现的部分,反正说了半天就是觉得项目不够。。我说我是做算法的。。然后就说写个代码:

leetcode 77 题:给定两个整数 n 和 k,返回 1 ... 中所有可能的 k 个数的组合。

写完了之后说代码重复率比较高,让我写笔试的求素数题目,写完了说了几句就让我去二面了。

二面又开始介绍项目,然后我又是对自己做的一顿说,说完了之后这个面试官就感兴趣点,然后说我们问问网络,tcp udp很基础的问题,之后问了对称加解密,我还想将证书什么的,他说够了,还问我网络层怎么加密,ipsec,没回答出来。然后就问设计模式,问我会不会,我说就只知道单列模式,他说没事,然后换操作系统,问我没有初始化的全局变量放在哪,我结合虚拟内存把一套给他讲完了,还有虚拟内存和物理内存之间常问的new,,还问了c++里面的set,mutilset,unordered_set。然后就写代码:

leetcode516.最长回文子序列。和回文子串不同,子序列可以是不连续的,dp。

leetcode111.二叉树最小深度

写完了就让我出去等综合面。

综合面最久,完完全全的问了50分钟以上,包括项目,你最自豪的事情,对人生的规划,为什么不读博,一堆组合拳。回答完了感觉有点被装进去了。。。

朋友二面遇到的问题:leetcode 200 岛屿的数量;leetcode 695 岛屿的最大面积。

2019.9.12收到华为意向书,无线sp已拒。

 

2019.9.17 小米一面——底层框架,相机

1、介绍一下static(c/c++)

2、如果一个递归函数中用static变量有没有问题

3、递归函数在返回的时候,为什么值没有改变

4、栈除了存储局部变量还有什么

5、调用函数的过程

6、虚函数如何实现

7、虚函数指针、this指针什么时候初始化

8、一个空类有哪些默认函数

9、什么情况下需要定义拷贝构造函数、同时还要定义什么函数?

10、简单的数据结构讲了下布隆过滤器、set、红黑树

 

2019.9.20 小米二面——底层框架,相机

1、介绍项目

2、局部变量,全局变量,局部静态变量,全局静态变量,字符串常量在内存中哪个位置?

3、介绍进程空间

4、局部对象,全局对象,局部静态对象,全局静态对象什么时候初始化?如果一个函数有局部对象和局部静态对象,在调用时候有什么不同吗?

5、介绍stl,vector,stack,map,unordered_map底层,为什么喜欢用unordered_map,什么时候用map?

6、虚函数、虚函数表指针,虚函数表

7、如果类中已经有了虚函数,此时需不需要定义一个虚析构函数?

8、如果在一个基类构造函数中调用了虚函数,这个虚函数在派生类中已经改写,请问这个时候调用的是基类的虚函数还是派生类的虚函数?分别从编译器安全和执行讲。

9、派生类和基类有几个虚函数表?一个类的所有对象都有一个虚函数表还是?

10、当完成一个派生类初始化时,如果这个派生类中有虚函数,那么它的虚函数指针被赋值几次?

11、tcp滑动窗口的意义?讲详细一点

12、线程进程讲一讲、都拥有什么资源?

聊得很开心,面试官加了微信,推荐了一下学习方案,小米相机内核的,对c++要求比较高,还好奇问我是怎么学习的。

2019.10.10收到小米hr谈薪,相机内核sp,拒了。

 

2019.9.18百度一面——搜索引擎

1、介绍项目

2、x86 x62 int short float字节数,为什么在x86和x32下long的字节数不同?地址总线

3、无序数组最小k个数

4、使用clear会不会清空vector内存?场景题1:如果一个vector 95%的数据都小于1W个int,5%的数据大于100W个int,这时候怎么样操作使得开销最小?定时去检查一块内存,如果大于100w就重新开辟一块内存。

5、场景题2:uint类型数,两个巨大的文件,无法存入内存,怎么来判断,两者重复的?如果是字符串呢?怎么判断两个巨大文件中的交集?

 

2019.9.21百度二面——自动驾驶

1、介绍项目,很久

2、搜索路径最小代价向右向下,dp,如果能4个方向呢?会不会出现搜索完又回去死锁的情况?

3、介绍内存空间堆栈区别,详细

4、滑动窗口介绍,详细问了比较多

5、找一条二叉树最长路径并且输出

 

2019.9.21百度三面——自动驾驶

介绍项目,聊里面的东西,运动点云采集的运动补偿。面试官人很好提了很多关于多线程方面的建议,nginx,webserver,cyber RT,以及可以再去好好读读PCL源码,在linux环境下去读,职业规划等等,啊!许愿许愿!给我一个百度offer吧!!!

--->9.26 给了。加油!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值