Final Challenge #1
Coddyの「ベルマン–フォード法 - グラフアルゴリズム」コースのレッスン 8/9。
チャレンジ
中級ベルマン–フォード法の真骨頂は、負の閉路を見つけ出すことです。
hasNegativeCycle という名前の関数を作成してください。この関数は n とフラットな edges 配列(3つの値の組、有向)を受け取り、グラフに負の重みの閉路が含まれる場合は 1 を、そうでない場合は 0 を返します。
ヒント:すべての距離を 0 から開始し、すべての辺を n - 1 回緩和(relax)させ、その後もう一度パスを実行します。もしさらに緩和できる辺があれば、負の閉路が存在します。
自分で試してみよう
#include <stdlib.h>
int hasNegativeCycle(int n, int* edges, int edges_size) {
// ここにコードを記述してください
return -1;
}