高德地图 信息研发部 笔试

说几个印象深刻的点:

  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笔面经#

全部评论
看评论区的各位大佬,我好悲伤
点赞 回复 分享
发布于 2024-04-02 17:24 湖南
算了 我还是放弃算法吧
点赞 回复 分享
发布于 2024-04-02 17:19 广东
呃呃,,好难的样子
点赞 回复 分享
发布于 2024-04-02 17:06 内蒙古
更新一下第二题思路: 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>
点赞 回复 分享
发布于 2024-03-29 15:00 北京
更新一下第三题思路:维护一个数组,这个数组代表第i家公司,再多接一个人需要额外花费多少。另外肯定还要维护一个cnt_i,记录第i家公司已经接了多少人了。然后每次就挑花费最小的出来,重复m次。假设第i家公司已经接了k个人,再多接1个人,新增的代价就是v_i * ((k+1)^2-k^2),也就是v_i*(2k+1)。相当于贪心,每次都选一个开销最少的人上。时间复杂度m*lgn。
点赞 回复 分享
发布于 2024-03-28 22:26 北京
a了2道。第1道创建一个map,key是数组中的元素,value是这个元素出现的最小索引。[1,2,2,3,3,3,4]→map[1]=0,map[2] = 1,map3=3...然后排序map中的key值求第二大第二小。 第二题狠狠贪心。第三题看不懂,一点没写。
点赞 回复 分享
发布于 2024-03-28 21:21 上海

相关推荐

04-01 17:31
门头沟学院 Java
全程1h,11.30面完,吃完饭,2点电话约二面面试官人很好,也开了摄像头,面完还给我说了很多学习的建议,广度和深度都要有,要多去了解为什么这样~手撕&nbsp;1.LCR121.二维数组找目标值2.LC78.子集项目拷打1.RabbitMQ和其他mq的区别(主要讲了RocketMQ和Kafka)2.项目中微服务框架怎么用的3.项目中redis缓存热点数据具体怎么用的4.项目中数据变更的时候怎么处理的5.为什么用Mysql分库6.AOP的原理7.使用AOP的时候需要注意什么8.哪些情况下AOP会失效9.项目中用到redis分布式锁具体怎么实现的10.锁的释放是怎么释放的11.Lua脚本的具体实现(没答好)12.为什么要判断锁的值与预期值是否相等13.什么情况下锁不属于自己14.项目中怎么优化sql的15.创建复合索引的时候需要注意什么16.java虚拟线程17.redis怎么处理过期key(惰性+定期)18.redis集群19.分布式一致性协议20.Raft&nbsp;协议,当主挂的时候,它是怎么重新选主的21.分布式事务22.epoll有了解吗23.操作系统的虚拟内存24.怎么做虚拟内存到物理内存的映射的25.HTTPS连接过程26.HTTPS在传输数据的时候,它用的是对称加密还是非对称加密(对称加密)27.大数据处理相关的,HBase,Flink有了解吗(了解不深)28.HBase和MySQL的主要区别(了解不深)29.什么时候能来实习,到什么时候30.反问(1.业务&nbsp;2.面试表现:很优秀,对知识点掌握很广(:谢谢哥)&nbsp;3.面试流程:2技术+1hr)#Java##面经#
点赞 评论 收藏
分享
评论
8
12
分享

创作者周榜

更多
牛客网
牛客企业服务