Scala中列表的局部最大值

麦可

这是一个简单的编码练习:在给定列表中找到所有局部最大值一个当地最大的一个项目,这是比这两个项目之前和之后更大。

localMaxima of [2,9,5,6,1] is [9,6]
localMaxima of [2,3,4,1,5] == [4]
localMaxima of [1,2,3,4,5] == []

我将此函数编写如下:

def localMaxima(l: List[Int]) = 
  (l, l.tail, l.tail.tail).zipped.toList
    .filter(t => t._2 > t._1 && t._2 > t._3)
    .map(_._2)

您将如何编写局部最大值

马思
scala> val l = List(2,9,5,6,1)
l: List[Int] = List(2, 9, 5, 6, 1)

scala> l.sliding(3).collect{ case a::b::c::Nil if a<b && b>c => b }.toList
res2: List[Int] = List(9, 6)

scala> val l = List(2,3,4,1,5)
l: List[Int] = List(2, 3, 4, 1, 5)

scala> l.sliding(3).collect{ case a::b::c::Nil if a<b && b>c => b }.toList
res3: List[Int] = List(4)

scala> val l = List(1,2,3,4,5)
l: List[Int] = List(1, 2, 3, 4, 5)

scala> l.sliding(3).collect{ case a::b::c::Nil if a<b && b>c => b }.toList
res4: List[Int] = List()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列表中列表中的局部最大值

来自分类Dev

使用折叠的列表的局部最大值

来自分类Dev

在Scala中递归查找列表中的最大值

来自分类Dev

在Scala中递归查找列表中的最大值

来自分类Dev

Scala根据最大值过滤列表

来自分类Dev

快速找到C ++中的所有局部最大值

来自分类Dev

Python中的非局部最大值抑制

来自分类Dev

在numpy数组中查找局部最大值

来自分类Dev

Python中的非局部最大值抑制

来自分类Dev

在一组数据中寻找局部最大值

来自分类Dev

记录列表中的最大值

来自分类Dev

从SML列表中获取最大值

来自分类Dev

序列中的最大值列表?

来自分类Dev

在嵌套列表中查找最大值

来自分类Dev

在列表中查找最大值

来自分类Dev

记录列表中的最大值

来自分类Dev

列表数组中的最大值

来自分类Dev

列表中的 VBA 或 Excel 最大值

来自分类Dev

从列表中获取上限最大值

来自分类Dev

获取元组列表中的最大值

来自分类Dev

从C ++中的向量中找出局部最大值/局部最小值(范围)的数量

来自分类Dev

从C ++中的向量中找出局部最大值/局部最小值(范围)的数量

来自分类Dev

从案例类节点列表中获取最大值,返回 Scala Option[List]

来自分类Dev

在列表列表中获取最大值列表

来自分类Dev

点云中的局部最大值

来自分类Dev

查找局部最大值之前的正值

来自分类Dev

如何在列表中找到所有局部最大值和最小值

来自分类Dev

查找局部最小值和局部最大值

来自分类Dev

从列表中的列表中获取最大值