当前位置:网站首页>2290. Minimum Obstacle Removal to Reach Corner
2290. Minimum Obstacle Removal to Reach Corner
2022-06-10 15:38:00 【soO_ 007】
subject :
You are given a 0-indexed 2D integer array grid of size m x n. Each cell has one of two values:
0represents an empty cell,1represents an obstacle that may be removed.
You can move up, down, left, or right from and to an empty cell.
Return the minimum number of obstacles to remove so you can move from the upper left corner (0, 0) to the lower right corner (m - 1, n - 1).
Example 1:

Input: grid = [[0,1,1],[1,1,0],[1,1,0]] Output: 2 Explanation: We can remove the obstacles at (0, 1) and (0, 2) to create a path from (0, 0) to (2, 2). It can be shown that we need to remove at least 2 obstacles, so we return 2. Note that there may be other ways to remove 2 obstacles to create a path.
Example 2:

Input: grid = [[0,1,0,0,0],[0,1,0,1,0],[0,0,0,1,0]] Output: 0 Explanation: We can move from (0, 0) to (2, 4) without removing any obstacles, so we return 0.
Constraints:
m == grid.lengthn == grid[i].length1 <= m, n <= 1052 <= m * n <= 105grid[i][j]is either0or1.grid[0][0] == grid[m - 1][n - 1] == 0
Ideas :
This question uses 0-1BFS, A grid with obvious obstacles cost by 1, Barrier free grid cost by 0, Quite obvious 0-1 了 . establish dist Table to record from 0 Point to {x, y} The shortest distance of a point dist[x][y], establish visited Table to record {x, y} Whether the point has been updated to the shortest distance . After is deque Double ended queue BFS, about 4 In all directions ,cost by 1 Next step , Put in deque Backend ,cost by 0 Next step , Put in deque The front end of the , This ensures that we start from deque Always take out the low consumption points first . Finally, just go back dist[m - 1][n - 1] that will do .
Code :
class Solution {
public:
int minimumObstacles(vector<vector<int>>& grid) {
int m = grid.size(), n = grid[0].size();
vector<vector<bool>> visited(m, vector<bool>(n, false));
vector<vector<int>> dist(m, vector<int>(n, INT_MAX));
dist[0][0] = 0;
deque<pair<int, int>> q;
vector<pair<int, int>> dirt = { {1, 0}, {-1, 0}, {0 , 1}, {0, -1} };
q.push_back({ 0, 0 });
while (q.size()) {
auto tmp = q.front();
q.pop_front();
int x = tmp.first, y = tmp.second;
if (visited[x][y]) {
continue;
}
visited[x][y] = true;
for (int i = 0; i < dirt.size(); i++) {
int nx = x + dirt[i].first;
int ny = y + dirt[i].second;
if (nx < 0 || nx >= m || ny < 0 || ny >= n) {
continue;
}
dist[nx][ny] = min(dist[nx][ny], dist[x][y] + grid[nx][ny]);
if (grid[nx][ny] == 1) {
q.push_back({ nx, ny });
} else {
q.push_front({ nx, ny });
}
}
}
return dist[m - 1][n - 1];
}
};
边栏推荐
- rk3399_9.0去掉设置的一级菜单network & internet
- CentOS Linux is dead! Oracle Linux may be a better alternative
- VINS理论与代码详解0——理论基础白话篇
- 排名前十、手续费低的期货公司有哪些?安全吗
- Lua table operation
- Software intelligence: formal rules of AAAS system metrics and grammars
- 港大、英伟达 | Factuality Enhanced Language Models for Open-Ended Text Generation(用于开放式文本生成的事实性增强语言模型)
- SQL语言
- 从“初代播种”到“落地生花”,广和通在5G商用三年间做了什么?
- Overview of cann interface calling process
猜你喜欢

影刀RPA学习和遇见excel部分问题解决方式

Information theory and coding 2 final review BCH code

Comply with medical reform and actively layout -- insight into the development of high-value medical consumables under the background of centralized purchase 2022

无线通信模组如何助力智能无人机打造“空中物联网”?

在什么场景下,我们不能使用箭头函数?

如何構建以客戶為中心的產品藍圖:來自首席技術官的建議

“绽放杯”5G应用奖项大满贯!广和通多个联合项目荣获通用产品专题赛一、二、三等奖

港大、英伟达 | Factuality Enhanced Language Models for Open-Ended Text Generation(用于开放式文本生成的事实性增强语言模型)

opencv神经网络库之SVM和ANN_MLP的使用

3. Encounter the form of handycontrol again
随机推荐
面试题详情
2022 Nanjing International Smart site equipment exhibition
Guanghetong high computing power intelligent module injects intelligence into 5g c-v2x in the trillion market
RSA a little bit of thought
统一认证中心 Oauth2 认证坑
2022 the 14th Nanjing International artificial intelligence product exhibition
CentOS Linux is dead! Oracle Linux may be a better alternative
港大、英伟达 | Factuality Enhanced Language Models for Open-Ended Text Generation(用于开放式文本生成的事实性增强语言模型)
广和通携手中国移动、惠普、联发科、英特尔合作打造5G全互联PC泛终端系列产品
We media video Hot Ideas sharing
Mitm (man in the middle attack)
凸函数的Hessian矩阵与高斯牛顿下降法增量矩阵半正定性的理解
Yuntu says that every successful business system cannot be separated from apig
Applet to realize global data sharing
数据库创建触发器的问题
广和通高算力智能模组为万亿级市场5G C-V2X注智
QT 基于QScrollArea的界面嵌套移动
初学pytorch踩坑
opencv神经网络库之SVM和ANN_MLP的使用
How the terminator sets the font to display different colors