声明:
本数据来源均由公开数据得来,不存在任何爬虫、敏感信息获取,如有任何问题,本人保留解释权
项目分析:
最近有个需求查找特价票,查找可以在机票落地后换乘其他特价票的需求
经过项目分析,得出以下步骤:
1.数据清洗,排除重复的票
2.递归查找符合条件的机票
3.递归完成后存储路径树
4.排序最长路径树,也就是换乘长度排序
1.数据清洗,排除重复的票
正常查重删除:
2.递归查找符合条件的机票 & 3.递归完成后存储路径树
本来想看一下leetcode上现成的代码,结果发现只有二叉树所有路径求解
这里的实际问题并不是二叉树,而是一个树,因为前程票结束后,可能会有以结束票为起点的多个票,这里可以确定分支条件为两点:
1.前程票的落地地点和后程票的地点相同
2.前程票的落地时间在后程票起飞时间之前
3.添加条件SpaceTime时间间隔,避免换乘时间过长
确定终止条件:
找不到后程票,并且换乘次数大于一次
4.排序最长路径树,也就是换乘长度排序
正常冒泡
计算结果&后记
最开始考虑使用go来编写,速度也更快,但是考虑到库没有py那么实用(就是偷懒),这肯定不是最优解,内存使用率较高和计算率高(暴力算法),欢迎师傅们指正!