高德地图 信息研发部 笔试
说几个印象深刻的点:
- 单选 7道
- redis默认内存大小
- REDIS_DEFAULT_MAXMEMORY设置为0,表示没有最大值
- 32位操作系统最大是3G
- 设计模式
- adaptor适配器模式
- 不兼容的接口功能接入到一个类中
- decorator装饰器模式
- 动态给类添加职责
- 多选 8道(没啥印象了。。)
- 算法题 3道
- 找出一个数组中第二大和第二小的数的索引之和
- 我用的方法是:数组去重再排序找第二大和第二小的数是哪个 -> 拿到数之后再回到原数组去找对应的索引
- 这里有一个问题是原数组可能会有重复的数字,比如[1,2,2,3,3,3,4],第二小的数是2,那索引值就是1,第二大的数是3,那索引值取3中的最小值那就是3,所以求得的答案是1+3=4,但是这个测例我没通过??不知道什么原因,感觉题目这里没说清楚是不是取最小索引。
- 最后只通过了57%测例。。
- 现在一想是不是可以用优先队列,存数值的时候也存索引。
- 拼车问题
- 滴滴司机从0点到n点,途径点有m组人要拼车,但车只有3个座,不能超载。司机拼一窝人能赚(这批人数/(这批人数+1)*路程),问司机最多能赚多少?(已知每批拼车的人只可能是1个/2个/3个)
- 举个例子:司机从坐标0到20,坐标3有1个乘客要拼车到坐标6,坐标5有2个乘客要拼车到坐标14,坐标10有1个乘客要拼车到坐标18,司机拼第一窝人能赚(1/(1+1)*3),问司机最多能赚多少?
- 这个我是真不知道www看着像贪心又像动态规划又像背包问题,有懂的大佬能否帮忙解答一下。。。
- 滴滴司机接人问题
- m个人要接,有n家接人的公司,第i家公司接a个人需要花v[i]*a*a的钱,(v数组给出:例如[1,2,3,4]四家公司,第二家公司接3个人要花2*3*3的钱),问最少花多少把这批人接完。
- 也不会。。。
总结:寄了,回去恶补背包,高德这面试随缘了T_T