高德地图 信息研发部 笔试

说几个印象深刻的点:

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

总结:寄了,回去恶补背包,高德这面试随缘了T_T

#软件开发2024笔面经#

全部评论
a了2道。第1道创建一个map,key是数组中的元素,value是这个元素出现的最小索引。[1,2,2,3,3,3,4]→map[1]=0,map[2] = 1,map3=3...然后排序map中的key值求第二大第二小。 第二题狠狠贪心。第三题看不懂,一点没写。
点赞 回复
分享
发布于 03-28 21:21 上海
更新一下第三题思路:维护一个数组,这个数组代表第i家公司,再多接一个人需要额外花费多少。另外肯定还要维护一个cnt_i,记录第i家公司已经接了多少人了。然后每次就挑花费最小的出来,重复m次。假设第i家公司已经接了k个人,再多接1个人,新增的代价就是v_i * ((k+1)^2-k^2),也就是v_i*(2k+1)。相当于贪心,每次都选一个开销最少的人上。时间复杂度m*lgn。
点赞 回复
分享
发布于 03-28 22:26 北京
滴滴
校招火热招聘中
官网直投
更新一下第二题思路: 1. 首先将所有的坐标转为一个三元组(x, y, num) 1. 这里要先剔除掉一些不符合的case:x<start>end 2. 依据end来给这一些三元组排序,放入一个最小堆中 3. 遍历[start,end],建立一个数组,dp[i]表示终点到i时能收获到最大利益,并存下收获最大利益情况下车上的剩余座位数,dp[i]={max_profit, res_num} profit()函数是计算收入的过程,这里省略具体计算公式 1. 假设第一个弹出的是(1,3,1),则dp[3]={profit(1,3,1),2} 2. 假设第二个弹出的是(2,6,2),则dp[6]取 max(max(dp[0]...dp[2])+profit(2,6,2),max(dp[3]...dp[5])), 注意,这里取dp的时候需要满足res_num>=num 3. 假设弹出的有多个,比如又弹了一个(1,6,1), 则再计算一遍max(max(dp[0]...dp[1])+profit(1,6,1),max(dp[2]...dp[5])),取最大值 4. 总结来说,dp的设置方式如下: vector<pair><int>> dp; // 初始条件 dp[0]=0; // 设i点max_profit和res_num为dp[i] dp[i]={max_profit,res_num} // 下一个点终点为j点 (x_j,y_j,num_j) dp[j].max_profit=max( max(dp[0...x_j].max_profit if its res_num >= num_j), max(dp[x_j+1...y_j-1].max_profit) )</int></pair></start>
点赞 回复
分享
发布于 03-29 15:00 北京
呃呃,,好难的样子
点赞 回复
分享
发布于 04-02 17:06 内蒙古
算了 我还是放弃算法吧
点赞 回复
分享
发布于 04-02 17:19 广东
看评论区的各位大佬,我好悲伤
点赞 回复
分享
发布于 04-02 17:24 湖南

相关推荐

7 9 评论
分享
牛客网
牛客企业服务