【发布时间】:2018-09-09 12:17:55
【问题描述】:
我正在处理一项编程挑战,我必须找到被一包围的零的数量。
我已经给了:
行数和列数r 和cnn 的位置数 i j 其中i 是行索引,j 是列索引
例如,如果我有
011110 010001 010001 001110 000000然后我返回6。
有3个测试输入集。在前两组r, c <= 1000。我设法通过使用 DFS 通过前两组来计算未被一包围的零的数量(从边界开始)。因此,z = r * c - k - n 的零数量k 是未被 1 包围的零数量。
但在第三种情况下,r, c <= 10^18 如果我在开始时创建二维向量,它甚至不适合记忆。我还注意到n 在所有集合中都相对较小(n <= 10^6)。
我的问题是如何为所有测试集解决这个问题?
【问题讨论】:
-
"我的问题是如何为所有测试集解决这个问题?" 很简单:通过编写代码来做到这一点。 SO 不是代码编写服务。
-
@AlgirdasPreidžius 我不需要这个问题的代码。我只是要求一种算法,因为我无法设计出这种算法。
-
1) 这样的问题对于 SO 来说也太宽泛了。一旦有了算法,它通常可以直接翻译成代码。因此,这实际上是相同的请求。 2)考虑重新使用tour,并阅读How to Ask和help center。
-
一个提示:如果你有例如10^18 行和 10^6 行,那么必须有很多行,其中只有零。无需将它们存储在数组中。
-
行中第一个索引和最后一个索引之间的所有非一索引都有被一包围的零。