1036 逃離大迷宮

2022-09-11 12:06:18 字數 1076 閱讀 9594

題目描述

在乙個 \(10^6\) x \(10^6\) 的網格中,每個網格上方格的座標為 (x, y) 。

現在從源方格 source = [sx, sy] 開始出發,意圖趕往目標方格 target = [tx, ty] 。陣列 blocked 是封鎖的方格列表,其中每個 blocked[i] = [xi, yi] 表示座標為 (xi, yi) 的方格是禁止通行的。

每次移動,都可以走到網格中在四個方向上相鄰的方格,只要該方格 不 在給出的封鎖列表 blocked 上。同時,不允許走出網格。

只有在可以通過一系列的移動從源方格 source 到達目標方格 target 時才返回 true。否則,返回 false。

資料範圍

0 <= blocked.length <= 200

0 <= xi, yi < 10^6

解題

class solution );

int n = blocked.size();

int maxc = n * (n - 1) / 2 + 1;

// 分別計算起點和終點是否可達的點超過最大值或是否可達到對方

return check(source, maxc, bset, target) && check(target, maxc, bset, source);

}bool check(const vector& node, const int& maxc, const set>& bset, const vector& bnode)

, dy = ;

set> vis;

queue> q;

vis.insert();

q.push();

int count = 0;

while(q.size())

) || vis.count()) continue;

q.push();

// 記得更新vis

vis.insert();}}

return false;

}};

1036 逃離大迷宮

在乙個 10 6 x 10 6 的網格中,每個網格塊的座標為 x,y 其中0 x,y 10 6。我們從源方格source開始出發,意圖趕往目標方格target。每次移動,我們都可以走到網格中在四個方向上相鄰的方格,只要該方格不在給出的封鎖列表blocked上。只有在可以通過一系列的移動到達目標方格時...

dfs bfs 逃離迷宮

給定乙個m n m行,n列 的迷宮,迷宮中有兩個位置,gloria想從迷宮的乙個位置走到另外乙個位置,當然迷宮中有些地方是空地,gloria可以穿越,有些地方是障礙,她必須繞行,從迷宮的乙個位置,只能走到與它相鄰的4個位置中,當然在行走過程中,gloria不能走到迷宮外面去。令人頭痛的是,glori...

A 逃離迷宮 DFS

給定乙個m n m行,n列 的迷宮,迷宮中有兩個位置,gloria想從迷宮的乙個位置走到另外乙個位置,當然迷宮中有些地方是空地,gloria可以穿越,有些地方是障礙,她必須繞行,從迷宮的乙個位置,只能走到與它相鄰的4個位置中,當然在行走過程中,gloria不能走到迷宮外面去。令人頭痛的是,glori...