总结---2023年饿了么秋招工程算法岗笔试

1. 小红送外卖

算法思路:

  • 定义节点与边的邻接表:利用数组定义节点,每个节点都是一个ArrayList(类型为边类,边类的成员变量是节点和距离)
  • 定义dist数组保存节点到源节点的最短路径
  • 利用Dijsktra算法结合优先队列从起点开始遍历
  • 计算累计和

难点:

  • Dijsktra算法流程:三个关键数组(每个节点是否找到、最短距离、父节点)。

总结:

  • 第一次完整的写需要导包的java代码还是有点不熟悉,其实只需要import java.util.*就行了。
  • next()、nextInt()基于分隔符,参考csdn
  • 在next完后记得nextLine()吃掉换行符

2. 小红等外卖

算法思路:

  • 对于每一种情况,读取时间后将其转换为分钟进行比较,这里利用到了(m + DAY_MINUTE) % DAY_MIMUTE的思想处理同一天和次日两种情况

难点:

  • 用取模(环形)处理跨午夜

3. 小红的字符串构造

算法思想:

  • 利用布尔数组记录串中出现的字符,并将其保存到ArrayList中。构建新的数组next,对于ArrayList中的每一个字符(不重复的),数组下标对应的字符为集合中的下一个元素,这样能保证不重复。随后扫描串并构建即可。
暑期笔试总结 文章被收录于专栏

记录一些公司的暑期笔试感悟

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务