都市間貨物輸送問題のグラフアルゴリズム解法
問題1:都市間の最短経路探索
この問題では、都市間の輸送経路における最短距離を求めます。幅優先探索を応用したアルゴリズムを実装します。
#include <iostream>
#include <vector>
#include <queue>
#include <list>
#include <climits>
using namespace std;
// グラフの辺を表す構造体
struct Connection {
int destination; ...
7月24日 03:34 投稿
二分木のレベル順走査に関するLeetCode問題
NO.116 各ノードの次の右側ポインタを埋める
完全二分木が与えられます。この木はすべての葉ノードが同じレベルにあり、各親ノードが2つの子ノードを持つ特徴があります。二分木は以下のように定義されます:
struct Node {
int val;
Node *left;
Node *right;
Node *next;
}
各ノードのnextポインタを、その次の右側のノードを指すように設定してください。次の ...
7月22日 20:28 投稿
グラフ理論と行列操作アルゴリズム
100. 島の最大面積
与えられた1(陸地)と0(水)からなる行列において、島の最大面積を計算します。島は水平または垂直方向に隣接する陸地で構成され、周囲が水で囲まれているものとします。
from collections import deque
def max_area_of_island(grid):
rows, cols = len(grid), len(grid[0])
max_area = 0
for i in range(rows):
for j in ...
6月18日 17:18 投稿
幅優先探索による連結成分と最短経路の解析
幅優先探索(BFS)は、始点から順に隣接ノードを訪問し、各レベルのノードをすべて処理してから次の深さへ進むアルゴリズムです。この手法は、グリッド上の連結領域の数え上げや迷路における最短ステップ数の算出に適しています。
1のブロック数をカウントする例
#include <iostream>
#include <queue>
using namespace std;
const int SIZE = 100;
int rows ...
6月2日 19:01 投稿
コーススケジュールII - トポロジカルソート - DFS・BFSによる解法
問題概要
0からnumCourses-1までの整数で表される複数のコースが存在します。配列prerequisitesの各要素prerequisites[i] = [ai, bi]は、コースaiを受講する前にbiを完了する必要があることを示します。
すべてのコースを受講可能な順序を返してください。複数の有効な順序が存在する場合は、そのいずれかを返します。不可能な場合は空配列を返します。
例1
入力: numCou ...
5月30日 02:57 投稿