Scala中List的本地最大值
发布时间:2020-12-16 18:27:24 所属栏目:安全 来源:网络整理
导读:这是一个简单的编码练习:找到给定列表中的所有局部最大值.本地最大值是一个项目,它大于紧接其之前和之后的项目. localMaxima of [2,9,5,6,1] is [9,6]localMaxima of [2,3,4,1,5] == [4]localMaxima of [1,2,5] == [] 我写了这个函数如下: def localMaxima
这是一个简单的编码练习:找到给定列表中的所有局部最大值.本地最大值是一个项目,它大于紧接其之前和之后的项目.
localMaxima of [2,9,5,6,1] is [9,6] localMaxima of [2,3,4,1,5] == [4] localMaxima of [1,2,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,1) l: List[Int] = List(2,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,5) l: List[Int] = List(2,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,5) l: List[Int] = List(1,5) scala> l.sliding(3).collect{ case a::b::c::Nil if a<b && b>c => b }.toList res4: List[Int] = List() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |