私は有向グラフを持っています
1 - From
2 - To
3 - Start time (HH:mm, casted to integer) 60 => 01:00
4 - difference between endtime, always > 0;
1 2 60 120
1 2 720 125
1 2 900 120
1 3 390 90
1 3 1040 95
2 3 780 180
2 3 1260 180
2 4 240 240
2 4 300 240
2 4 1080 240
3 1 165 90
3 1 1430 90
3 2 1432 180
3 5 1431 249
4 2 1080 240
4 3 720 60
開始時間列については忘れましょう。しかし、1 から 5 までの最も近いパスを取得する最も簡単なアルゴリズムは何でしょうか。つまり、4 番目の列の合計が 1 より小さい最も近いパスを取得することです。
言及する:私は実際のノードが作成されていません。エッジに関する情報を持っているだけで、次のように配列に書いています
edges[ ''counter'' ] [0] = from;
edges[ ''counter'' ] [1] = to;
edges[ ''counter'' ] [2] = timeToInt(time);
edges[ ''counter'' ] [3] = timeToInt(endTime) - edges[ ''counter'' ] [2];
Dijkstraアルゴリズムについて聞いたことがありますが、実装方法。