深信服C/C++一二面

一面
上来直接手撕不过不难,
1、手撕:和并两个有序链表(递归)
2、手撕:非递归
3、手撕:二分查找法
4、手撕:二分查找(递归)
5、问了项目
6、问了比赛
7、反问


二面
记住背会这个memcpy,的内存覆盖问题。
void *memcpy(void *dst, const void *src, size_t len)
{
	if(NULL == dst || NULL == src){
		return NULL;
	}
	void *ret = dst;
	
	if(dst <= src || (char *)dst >= (char *)src + len){
		//没有内存重叠,从低地址开始复制
		while(len--){
			*(char *)dst = *(char *)src;
			dst = (char *)dst + 1;
			src = (char *)src + 1;
		}
	}else{
		//有内存重叠,从高地址开始复制
		src = (char *)src + len - 1;
		dst = (char *)dst + len - 1;
		while(len--){
			*(char *)dst = *(char *)src;
			dst = (char *)dst - 1;
			src = (char *)src - 1;
		}
	}
	return ret;
}


#深信服##校招##C/C++##面经#
全部评论
二分查找还有递归方法吗?
点赞 回复 分享
发布于 2021-09-05 17:13
哈哈哈,我们不会是同一个面试官吧,我也是一上来就手撕这两道题,二分法还要递归实现
点赞 回复 分享
发布于 2021-09-06 00:38
这个strcpy代码的判重叠条件好像有点奇怪
点赞 回复 分享
发布于 2021-09-06 17:16
二面和我面试题目一模一样,不过我没写出来,怕是无了
点赞 回复 分享
发布于 2021-09-06 19:46

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
2 19 评论
分享
牛客网
牛客企业服务