相关疑难解决方法(0)

如何最有效地在矩阵中找到给定大小的相同值矩形区域?

我的问题很简单,但我还没有找到有效的实现.

假设有一个像这样的矩阵A:

0 0 0 0 0 0 0
4 4 2 2 2 0 0
4 4 2 2 2 0 0
0 0 2 2 2 1 1
0 0 0 0 0 1 1
Run Code Online (Sandbox Code Playgroud)

现在我想找到这个矩阵中具有给定大小的矩形区域的所有起始位置.区域是A的子集,其中所有数字都相同.

我们说宽度= 2和高度= 3.有3个区域有这样的大小:

2 2   2 2   0 0
2 2   2 2   0 0
2 2   2 2   0 0
Run Code Online (Sandbox Code Playgroud)

函数调用的结果将是这些区域的起始位置(x,y从0开始)的列表.

List((2,1),(3,1),(5,0))
Run Code Online (Sandbox Code Playgroud)

以下是我目前的实施情况."区域"在这里被称为"表面".

case class Dimension2D(width: Int, height: Int)
case class Position2D(x: Int, y: Int)

def findFlatSurfaces(matrix: Array[Array[Int]], surfaceSize: Dimension2D): List[Position2D] …
Run Code Online (Sandbox Code Playgroud)

algorithm scala matrix scala-2.8

9
推荐指数
3
解决办法
2169
查看次数

Scala列表理解一次采用两个元素

假设我可以放心,我有一个包含偶数元素的列表,例如

val items = List(1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)

我知道我可以写一个列表理解,一次只取一个元素:

for (item <- items) println(item)
Run Code Online (Sandbox Code Playgroud)

但是,有什么方法可以使用理解来一次处理2个或更多元素吗?

for ((first, second) <- items) println (first + second)
Run Code Online (Sandbox Code Playgroud)

scala list-comprehension list

1
推荐指数
2
解决办法
3572
查看次数

标签 统计

scala ×2

algorithm ×1

list ×1

list-comprehension ×1

matrix ×1

scala-2.8 ×1