当前位置:网站首页>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
}
}
边栏推荐
- WARNING: You are using pip version 21.3.1; however, version 22.0.3 is available. Prompt to upgrade pip
- Linxu learning (4) -- Yum and apt commands
- Jenkins learning (II) -- setting up Chinese
- Move anaconda, pycharm and jupyter notebook to mobile hard disk
- What are the stages of traditional enterprise digital transformation?
- 【点云处理之论文狂读前沿版12】—— Adaptive Graph Convolution for Point Cloud Analysis
- The server denied password root remote connection access
- State compression DP acwing 91 Shortest Hamilton path
- [point cloud processing paper crazy reading classic version 11] - mining point cloud local structures by kernel correlation and graph pooling
- 【点云处理之论文狂读经典版12】—— FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation
猜你喜欢
![[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis](/img/c6/5f723d9021cf684dcfb662ed3acaec.png)
[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis

2022-2-13 learn the imitation Niuke project - Project debugging skills

2022-2-14 learning the imitation Niuke project - send email

LeetCode 715. Range module

What are the stages of traditional enterprise digital transformation?

【Kotlin学习】运算符重载及其他约定——重载算术运算符、比较运算符、集合与区间的约定

Instant messaging IM is the countercurrent of the progress of the times? See what jnpf says

Pic16f648a-e/ss PIC16 8-bit microcontroller, 7KB (4kx14)

Computing level network notes

2022-2-13 learning xiangniuke project - version control
随机推荐
[point cloud processing paper crazy reading classic version 11] - mining point cloud local structures by kernel correlation and graph pooling
AcWing 787. Merge sort (template)
【点云处理之论文狂读经典版13】—— Adaptive Graph Convolutional Neural Networks
Excel is not as good as jnpf form for 3 minutes in an hour. Leaders must praise it when making reports like this!
【点云处理之论文狂读经典版9】—— Pointwise Convolutional Neural Networks
Hudi learning notes (III) analysis of core concepts
Use the interface colmap interface of openmvs to generate the pose file required by openmvs mvs
传统办公模式的“助推器”,搭建OA办公系统,原来就这么简单!
Integrated use of interlij idea and sonarqube
With low code prospect, jnpf is flexible and easy to use, and uses intelligence to define a new office mode
[kotlin learning] control flow of higher-order functions -- lambda return statements and anonymous functions
[kotlin learning] operator overloading and other conventions -- overloading the conventions of arithmetic operators, comparison operators, sets and intervals
C language programming specification
Jenkins learning (I) -- Jenkins installation
图像修复方法研究综述----论文笔记
[kotlin learning] classes, objects and interfaces - classes with non default construction methods or attributes, data classes and class delegates, object keywords
Overview of image restoration methods -- paper notes
Serializer rewrite: update and create methods
[point cloud processing paper crazy reading classic version 12] - foldingnet: point cloud auto encoder via deep grid deformation
LeetCode 513. Find the value in the lower left corner of the tree