3243。道路追加クエリ後の最短距離 I
難易度: 中
トピック: 配列、幅優先検索、グラフ
整数 n と 2D 整数配列クエリが与えられます。
0 から n - 1 までの番号が付けられた n 個の都市があります。最初は、すべての 0 一方向 道路があります。 n - 1.
queries[i] = [ui, vi] は、都市 ui一方向道路の追加を表します。 > 都市viへ。各クエリの後で、都市 0 から都市 n - 1 までの最短パスの長さを見つける必要があります。
範囲 [0, queries.length - 1] の各 i に対する配列の回答を返します。answer[i] は、最初に 1 つのクエリ.
例 1:
3
解決策: 都市間の道路の追加をシミュレートし、各道路の追加後に都市 0 から都市 n - 1 までの最短パスを計算する必要があります。制約と問題の性質を考慮すると、重み付けされていないグラフに対して 幅優先検索 (BFS) を使用できます。 グラフ表現: 最短パス計算 (BFS): クエリの反復: 効率: このソリューションを PHP で実装してみましょう: 3243。道路追加クエリ後の最短距離 I グラフの初期化: BFS 関数: クエリ処理: 出力: 時間計算量: 入力 n = 5 およびクエリ = [[2, 4], [0, 2], [0, 4]]: したがって、出力は [3, 2, 1] となります。 連絡先リンク このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます! このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
アプローチ:
<?php
/**
* @param Integer $n
* @param Integer[][] $queries
* @return Integer[]
*/
function shortestDistanceAfterQueries($n, $queries) {
...
...
...
/**
* go to ./solution.php
*/
}
/**
* Function to find the shortest path using BFS
*
* @param $graph
* @param $n
* @return int
*/
function bfs($graph, $n) {
...
...
...
/**
* go to ./solution.php
*/
}
// Example 1
$n = 5;
$queries = [[2, 4], [0, 2], [0, 4]];
print_r(shortestDistanceAfterQueries($n, $queries));
// Example 2
$n = 4;
$queries = [[0, 3], [0, 2]];
print_r(shortestDistanceAfterQueries($n, $queries));
?>
説明:
チュートリアルの例:
最終的な考え:
以上が道路追加クエリ後の最短距離 Iの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。