饿了么内推饿了么面经

饿了么算法笔试

  • 订单编号排序:给定一个包含饿了么订单编号的字符串数组,订单编号由数字和字母组成,例如["ELEME20250308001", "ELEME20250307002", "ELEME20250308003"],要求按照订单日期(字符串中的数字部分)进行升序排序,编写一个函数实现该功能。
  • 菜品名称统计:假设有一个字符串数组表示订单中的菜品名称,例如["宫保鸡丁", "鱼香肉丝", "宫保鸡丁", "麻婆豆腐"],编写一个函数统计每个菜品名称出现的次数,并以键值对的形式返回结果,如{"宫保鸡丁": 2, "鱼香肉丝": 1, "麻婆豆腐": 1}
  • 配送路径规划:假设用一个图来表示城市中的各个地点以及它们之间的道路连接关系,图中的节点表示地点,边表示道路,边的权重表示道路的长度。给定起始地点(商家位置)和目标地点(用户位置),使用 Dijkstra 算法或 A * 算法等图搜索算法来找到最短配送路径,并返回路径和路径长度。
  • 区域划分问题:将城市区域抽象为一个无向图,节点表示小区或商圈等区域,边表示区域之间的关联关系。现在要将城市划分为若干个配送区域,使得每个配送区域内的节点之间的连接紧密,而不同配送区域之间的连接相对较少。可以使用图的聚类算法,如 K-Means 聚类算法在图上的变体等,来实现区域划分,并返回划分结果。
  • 订单分配问题:假设有n个订单和m个配送员,每个配送员处理每个订单都有一个对应的成本(例如时间成本、距离成本等),用一个二维数组cost[n][m]表示。要求将订单分配给配送员,使得完成所有订单的总成本最小。可以使用动态规划算法来解决这个问题,定义状态和状态转移方程,编写函数返回最小成本和对应的订单分配方案。
  • 优惠券组合问题:饿了么有多种优惠券,每种优惠券有一定的面值和使用条件,例如满x元减y元。给定一个订单金额total_amount和一个优惠券列表,使用动态规划算法找出可以使订单金额最小的优惠券组合方式。
  • 骑手派单策略:有一批订单需要分配给骑手,每个订单有一个取餐时间和送餐时间要求,以及订单金额。每个骑手在同一时间只能处理一个订单。使用贪心算法设计一个派单策略,使得在满足订单时间要求的前提下,骑手能够获得最大的总订单金额。例如,可以按照订单金额与预计完成订单所需时间的比值进行降序排序,优先分配比值大的订单给骑手。
  • 资源分配问题:饿了么在某个区域有一定数量的共享保温箱资源,每个商家对保温箱的需求数量不同,且每个商家使用保温箱后能够带来的收益也不同。使用贪心算法将保温箱分配给商家,以最大化总收益。例如,可以按照商家的收益与需求数量的比值进行降序排序,依次分配保温箱给商家,直到保温箱分配完或所有商家都已分配到足够的保温箱。

再来八个,祝大家都拿到满意的offer!

饿了么内推饿了么面经

阿里饿了么26可转正实习|2月27日正式启动!

️每人可投递一次,包含两个志愿,快快行动起来吧!

热招岗位:研发类、算法类、数据类、设计类等,大量岗位等你来投!

🌍base北京/上海/杭州

📌岗位面向2025年11月-2026年10月期间毕业并拿到毕业证的海内外应届毕业生

🔹投递方式:https://talent.ele.me/campus/qrcode/home?code=P5368qSwikRqDddjIvppesioCxERb1ens38Sj14pu_o%3D

📚 内推简历优先处理,可帮查看进度、推动流程!大家投递完可以在评论区打上姓名缩写+岗位,我来确认有没有内推成功喽

#校招##暑期实习##内推##饿了么#
全部评论

相关推荐

点赞 评论 收藏
分享
脚手架工具的本质作用在于通过提供一个标准化、快速、灵活的开发环境,帮助开发者更高效地构建和管理项目。以下是脚手架工具的几个核心作用:1. 加速项目启动脚手架工具能够为开发者快速创建项目的基础结构,减少初始设置的时间和精力。通过预定义的项目模板,开发者可以在几分钟内搭建一个可用的项目,而无需手动配置各种环境和依赖。2. 标准化项目结构脚手架工具提供一致的项目结构和代码规范,有助于提高代码的可读性和可维护性。这种标准化使得团队成员在开发和维护过程中更容易理解和协作,减少了入门和上手的时间。3. 提高开发效率脚手架工具通常集成了常用的开发工具和工作流,如构建工具、测试框架、代码质量工具等。这些工具的集成和自动化有助于开发者在编写代码、测试和部署过程中实现更高的效率。4. 支持模块化开发许多脚手架工具采用模块化的设计,允许开发者将应用分为多个可重用的部分。这样做不仅提升了代码的可重用性,降低了修改、维护的复杂度,同时便于团队协作。5. 简化配置管理脚手架工具通常会提供默认的配置,开发者只需关注核心业务逻辑,而不必被繁琐的配置文件所困扰。这减少了因配置错误而导致的故障,提高了开发的顺畅度。6. 促进社区共享脚手架工具通常会拥有广泛的社区支持,鼓励开发者分享自己的模板和插件。这种共享文化促进了最佳实践的传播,借助已有的工具和代码,开发者可以更迅速地解决问题并提高自己的技能。7. 集成最新技术与最佳实践脚手架工具往往会集成最新的框架、库和技术,帮助开发者轻松应用最新的开发趋势和最佳实践,确保项目能跟上技术发展的步伐。8. 提供良好的文档与示例脚手架工具通常会附带详细的文档和示例代码,帮助开发者快速了解如何使用工具和构建项目。这为新手学习和上手提供了便利。总结:https://www.nowcoder.com/issue/tutorial?zhuanlanId=j572L2&uuid=1bdcfaaa91c8464182b5a2d102d3fa0f
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务