我有一个练习,我必须找到第一个>=0的元素,它不在集合中。我的计划是首先: filter
从集合中取负数,然后按 sliding
,然后添加 difference
到元组(如果是1,我知道它们之间没有任何int元素不在集合中)。然后我想过滤掉那些,这个差别不是1,所以我知道我要搜索的元素是,例如。
有 Set(-3,0,1,2,4)
,我有元组 (0,1),(1,2),(2,4)
-->最后过滤出来的只是 (2,4, 2 (difference))
,所以我的元素是 2+1 = 3
.
当我试图 filter
找出有区别的!=1,它说它无法解析重载方法 filter
```
def minNotContained(set: Set[Int]): Int = {
val positive = set.filter(_ >= 0)
val pairs = positive.sliding(2).toList.map(_.toList)
val pairsWithDifference = pairs.map{case List(a: Int,b: Int) => List((a,b,b-a))}.filter((x,y,z) => z!=1)
}
2条答案
按热度按时间vlju58qv1#
使用
dropWhile()
作为你的过滤器。xxls0lw82#
我设法这样做,但事实并非如此。。。。我需要使用集合上的操作来做这个练习,很抱歉回答了我的问题,但我希望我的解决方案更清晰可见。