链家校招面试(c++开发)

链家是过去先做笔试,一个小时5道题,3道要求写出代码,两道给出思路即可。

  1. 给定一个整数数组a和一个整数M,找出所有满足M = a[i] + a[j]的情况,输出下标 i 和 j;

  2. 找出二叉树中两个节点的最低公共祖先节点;

  3. 一个袋子中有n个小球,每个球都有编号,重复编号的球视为相同的,定义一个袋子为幸运的当且仅当这个袋子中所有小球编号之和大于之积。例如{1,1,2,3},1+1+2+3 >1*1*2*3。现在要求从袋子中取出m个小球,m大于等于0,小于n。求有多少种取法,能够使袋子是幸运的。

  4. IP地址段映射(吐槽:给的函数原型中,IP地址的参数类型居然是int);

  5. 编译器中undo和redo的操作是怎么实现的,给出数据结构和实现代码。

感觉答得其实很一般,二叉树那道刚开始完全没思路,到一面的时候面试官给了提醒,才大概想出来。小球那个题直接用的暴力求解法,时间复杂度O(n^2),最后才发现暴力法好像做不了。地址映射被int类型搞蒙了,没想出来IP地址怎么变成int型的。其实就第一题和最后一题答出来了。想着基本就可以走了,没想到后面居然又面了两面,有点惊讶。看来面试果真是实力和运气的结合啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值