总结---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中的每一个字符(不重复的),数组下标对应的字符为集合中的下一个元素,这样能保证不重复。随后扫描串并构建即可。
暑期笔试总结 文章被收录于专栏
记录一些公司的暑期笔试感悟