当前位置:网站首页>Leetcode daily question (1162. as far from land as possible)
Leetcode daily question (1162. as far from land as possible)
2022-07-03 09:33: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
}
}
边栏推荐
- Usage of pandas to obtain MySQL data
- Leetcode daily question (516. long palindromic subsequence)
- Hudi integrated spark data analysis example (including code flow and test results)
- 数字身份验证服务商ADVANCE.AI顺利加入深跨协 推进跨境电商行业可持续性发展
- Powerdesign reverse wizard such as SQL and generates name and comment
- Crawler career from scratch (I): crawl the photos of my little sister ① (the website has been disabled)
- Solve the problem of disordered code in vscode development, output Chinese and open source code
- Logstash+jdbc data synchronization +head display problems
- Apply for domain name binding IP to open port 80 record
- Word segmentation in full-text indexing
猜你喜欢

Directory and switching operation in file system

Flink学习笔记(八)多流转换

Beego learning - Tencent cloud upload pictures

npm install安装依赖包报错解决方法

软件测试工程师是做什么的 通过技术测试软件程序中是否有漏洞

Analysis of the implementation principle of an open source markdown to rich text editor

Hudi data management and storage overview

CATIA automation object architecture - detailed explanation of application objects (III) systemservice

LeetCode每日一题(2212. Maximum Points in an Archery Competition)

Principles of computer composition - cache, connection mapping, learning experience
随机推荐
Integrated use of interlij idea and sonarqube
QT sub window is blocked, and the main window cannot be clicked after the sub window pops up
Spark 概述
Patent inquiry website
LeetCode每日一题(985. Sum of Even Numbers After Queries)
ERROR: certificate common name “*.” doesn’t match requested ho
Jestson nano downloads updated kernel and DTB from TFTP server
Learning C language from scratch -- installation and configuration of 01 MinGW
Liteide is easy to use
图像修复方法研究综述----论文笔记
Modify idea code
文件系统中的目录与切换操作
Jenkins learning (I) -- Jenkins installation
Jenkins learning (II) -- setting up Chinese
[kotlin learning] control flow of higher-order functions -- lambda return statements and anonymous functions
[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
Go language - JSON processing
Failed building wheel for argon2 cffi when installing Jupiter
Derivation of Fourier transform
[point cloud processing paper crazy reading classic version 13] - adaptive graph revolutionary neural networks