- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我参加了一个编码竞赛,我非常接近解决以下问题,但由于某种原因我的代码无法运行 =(
这是问题的链接: https://leetcode.com/contest/leetcode-weekly-contest-53/problems/max-area-of-island/
我的解决方案:
class Solution(object):
def maxAreaOfIsland(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
self.longest = 0
self.count = 0
row = len(grid)
col = len(grid[0])
for i in range(row):
for j in range(col):
if grid[i][j] == 1:
self.count += 1
current = 1
self.countIsland(i, j, current, grid)
return self.longest
def countIsland(self, k, z, current, grid):
print(str(k) + "," + str(z) + "=" + str(current))
grid[k][z] = -1
if k > 0 and grid[k-1][z] == 1:
return self.countIsland(k-1, z, current+1, grid)
if k < (len(grid)-1) and grid[k+1][z] == 1:
return self.countIsland(k+1, z, current+1, grid)
if z > 0 and grid[k][z - 1] == 1:
return self.countIsland(k, z-1, current+1, grid)
if z < (len(grid[0])-1) and grid[k][z+1] == 1:
return self.countIsland(k, z+1, current+1, grid)
self.longest = max(self.longest, current)
return current
我差了 1,我得到 5 而不是 6。如果您尝试在 IDE 中运行它,我的打印语句将显示对于递归的最后一次调用,当前值正在重新初始化,即不是我想要的。有什么想法吗?
谢谢!
最佳答案
基本方法很直观。我们使用 DFS 在每个可能的位置扩展岛屿。当访问一个岛细胞时,我们将其“下沉”。下面是我的 Java 实现,并通过了 Leetcode 上的所有测试。
class Solution {
private static final int[][] dirs = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
public int maxAreaOfIsland(int[][] grid) {
if (grid == null || grid.length == 0 || grid[0].length == 0) {
return 0;
}
int res = 0;
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[0].length; j++) {
if (grid[i][j] == 1) {
res = Math.max(res, dfs(grid, i, j));
}
}
}
return res;
}
private int dfs(int[][] grid, int x, int y) {
if (grid[x][y] == 0) {
return 0;
}
grid[x][y] = 0;
int cnt = 1;
for (int[] dir : dirs) {
int nx = x + dir[0], ny = y + dir[1];
if (nx >= 0 && nx < grid.length && ny >= 0 && ny < grid[0].length && grid[nx][ny] == 1) {
cnt += dfs(grid, nx, ny);
}
}
return cnt;
}
}
关于python - 岛屿的最大面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46627606/
我正在开发一个企业名录网站,其搜索将由 Google map 驱动。用户将能够根据各种标准搜索他们所在地区的企业,但主要的想法是,如果您搜索例如“新泽西州的水管工”,您将获得新泽西州所有水管工的结果。
我得到了一条任意形状的曲线,包围了一些区域。 我想估计曲线在 iPhone/iPad 屏幕上包围的像素数。我该怎么做? 曲线被定义为点的连续 x/y 坐标。 闭合曲线。 通过用户的触摸(touches
我想删除 R 在点阵图周围的默认边距。这意味着我想摆脱红色矩形之外的所有空白。这是示例: library (raster) library(rasterVis) f <- system.file("e
无法找到任何直接的解决方案来计算 GMSPolygon 对象面积。有什么方法可以做到这一点,或者我必须用边长和一些数学计算来计算它? 最佳答案 感谢@Larme; GMSGeometryArea 就是
假设例如我想将标准正态分布的密度曲线下方的面积着色为十分。我希望最左边 10% 的区域具有与接下来的 10% 不同的阴影,依此类推。 这是问题“Shading a kernel density plo
我正在为 Extjs 开发一个混合图表组件,并且曲线太尖锐了。我找不到曲线具有半径的配置。如果你处理过类似的事情,你能提供一些方法让我的曲线变得平滑一点吗?这是我的代码: Ext.define('Ex
上下文 我有一个 3D 对象,我有它的坐标。然后我将对象旋转 n 次,当对象投影到网格上时,我想计算对象的 2D 面积(以纳米为单位)。 例如, 我在下面有一张图片描述了我的问题。我有相同的对象,但在
当我知道我需要的地 block 总数并且我希望排列是一个正方形(可能有一些空的子地 block )时,我正在尝试弄清楚如何计算子地 block 尺寸。 例如,如果我需要 22 个子图,那么我会为总共
我是一名数据科学家。主要使用Python和SQL来编写代码。我使用data studio进行可视化。所以我对JS不熟悉。我的诀窍data studio community visualizations
我有 1797 张 Mnist 图像,为此我需要提取两个特征(FilledArea、EulerNumber)。我知道如何在 Matlab 中做到这一点。我的特征矩阵在 Matlab 中具有(并且是正确
我希望能够在 Google map 上绘制形状(圆形、多边形和矩形),但我想限制可以绘制的形状的大小(面积)。因此,以圆圈为例,期望的行为是当用户开始从 map 上的某个点拖动鼠标以形成圆圈时,圆圈会
我是一名优秀的程序员,十分优秀!