我有两张table schedules
以及 places
.
我的 schedules
表格如下
- Id
- From Place Id
- To Place Id
- Departure Time
- Arrival Time
我的 places
表格如下
- Id
- Name
例如:当用户从 place_id
5至 place_id
1,系统应返回包含计划数组的路由数组。例如,这个时间表可能是这样的
[
{
from_place_id: 5,
to_place_id: 3,
...
},
{
from_place_id: 3,
to_place_id: 8,
...
},
{
from_place_id: 8,
to_place_id: 1,
...
},
]
我知道有很多算法,如广度优先搜索,深度优先搜索等,我从来没有做过他们使用拉威尔雄辩。请,给我一些实现结果的提示。有许多网站告诉不同的算法可用,但没有一个解释它。
2条答案
按热度按时间xesrikrc1#
根据我对你问题的理解,尝试以下代码:
此外,还需要为创建一个新的受保护函数
timeDiff
看起来像这样别忘了导入
Carbon
以及Schedule
在顶端。np8igboo2#
要找到路径,必须基于明细表构建图形数据结构。您可以从schedule表中获取所有记录并从中构建图形。
对于这种情况,可以使用bfs或dfs。但在imo中,dfs不适用于基于距离图的最短路径搜索,因此最好使用bfs。以防将来您将在明细表中应用距离。
您还必须在日程数据中考虑出发和到达时间。这意味着在您的bfs实现中,当前地点的下一条路线的出发时间不能小于当前节点的到达时间。