当前位置:网站首页>LeetCode每日一题(1162. As Far from Land as Possible)
LeetCode每日一题(1162. As Far from Land as Possible)
2022-07-03 09:01:00 【wangjun861205】
Given an n x n grid containing only values 0 and 1, where 0 represents water and 1 represents land, find a water cell such that its distance to the nearest land cell is maximized, and return the distance. If no land or water exists in the grid, return -1.
The distance used in this problem is the Manhattan distance: the distance between two cells (x0, y0) and (x1, y1) is |x0 - x1| + |y0 - y1|.
Example 1:

Input: grid = [[1,0,1],[0,0,0],[1,0,1]]
Output: 2
Explanation: The cell (1, 1) is as far as possible from all the land with distance 2.
Example 2:

Input: grid = [[1,0,0],[0,0,0],[0,0,0]]
Output: 4
Explanation: The cell (2, 2) is as far as possible from all the land with distance 4.
Constraints:
n == grid.length
n == grid[i].length
1 <= n <= 100
grid[i][j] is 0 or 1
impl Solution {
pub fn max_distance(mut grid: Vec<Vec<i32>>) -> i32 {
for i in 0..grid.len() {
for j in 0..grid[0].len() {
if grid[i][j] == 0 {
grid[i][j] = i32::MAX;
continue;
}
grid[i][j] = 0;
}
}
loop {
let mut modified = false;
for i in 0..grid.len() {
for j in 0..grid[0].len() {
let top = if i > 0 {
grid[i - 1][j] } else {
i32::MAX };
let bottom = if i < grid.len() - 1 {
grid[i + 1][j]
} else {
i32::MAX
};
let left = if j > 0 {
grid[i][j - 1] } else {
i32::MAX };
let right = if j < grid[0].len() - 1 {
grid[i][j + 1]
} else {
i32::MAX
};
let base = top.min(bottom).min(left).min(right);
if base == i32::MAX {
continue;
}
if grid[i][j] > base + 1 {
grid[i][j] = base + 1;
modified = true;
}
}
}
if !modified {
break;
}
}
let ans = grid
.into_iter()
.map(|row| row.into_iter().max().unwrap())
.max()
.unwrap();
if ans == 0 || ans == i32::MAX {
return -1;
}
ans
}
}
边栏推荐
- LeetCode 871. Minimum refueling times
- Vs2019 configuration opencv3 detailed graphic tutorial and implementation of test code
- CSDN markdown editor help document
- Construction of simple database learning environment
- Temper cattle ranking problem
- Detailed steps of windows installation redis
- Install database -linux-5.7
- On February 14, 2022, learn the imitation Niuke project - develop the registration function
- Crawler career from scratch (I): crawl the photos of my little sister ① (the website has been disabled)
- 【Kotlin学习】高阶函数的控制流——lambda的返回语句和匿名函数
猜你喜欢

Navicat, MySQL export Er graph, er graph

Just graduate student reading thesis

Instant messaging IM is the countercurrent of the progress of the times? See what jnpf says
![[kotlin learning] classes, objects and interfaces - classes with non default construction methods or attributes, data classes and class delegates, object keywords](/img/ee/d982fd9e1f2283e09ad1a81d0b61b5.png)
[kotlin learning] classes, objects and interfaces - classes with non default construction methods or attributes, data classes and class delegates, object keywords

传统办公模式的“助推器”,搭建OA办公系统,原来就这么简单!

Crawler career from scratch (3): crawl the photos of my little sister ③ (the website has been disabled)

Digital management medium + low code, jnpf opens a new engine for enterprise digital transformation

State compression DP acwing 291 Mondrian's dream

【Kotlin疑惑】在Kotlin类中重载一个算术运算符,并把该运算符声明为扩展函数会发生什么?

Beego learning - Tencent cloud upload pictures
随机推荐
We have a common name, XX Gong
Matlab dichotomy to find the optimal solution
Django operates Excel files through openpyxl to import data into the database in batches.
LeetCode 75. Color classification
LeetCode 715. Range module
Spark 集群安装与部署
Digital statistics DP acwing 338 Counting problem
Basic knowledge of database design
【Kotlin学习】运算符重载及其他约定——重载算术运算符、比较运算符、集合与区间的约定
Simple use of MATLAB
【点云处理之论文狂读经典版12】—— FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation
Basic knowledge of network security
What is an excellent fast development framework like?
[untitled] use of cmake
[point cloud processing paper crazy reading classic version 10] - pointcnn: revolution on x-transformed points
Principles of computer composition - cache, connection mapping, learning experience
Spark 概述
[point cloud processing paper crazy reading classic version 13] - adaptive graph revolutionary neural networks
Use the interface colmap interface of openmvs to generate the pose file required by openmvs mvs
Go language - Reflection