深信服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

相关推荐

头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
我即大橘:耐泡王
点赞 评论 收藏
分享
2 19 评论
分享
牛客网
牛客企业服务