我仍然是Scala的新手,但我试图确定一个数组是否有任何连续的整数,如果它有,那么它有多少.这是我到目前为止所做的,但我还没有完成它.
def isConsecutive(seq: Array[Int]): (Boolean, Int) = {
var arr: Array[Int] = Array[Int]()
for((v, i) <- seq.zipWithIndex) {
if (i < seq.length()) {
if (v + 1 == seq(i + 1)) {
arr = arr :+ v
}
}
}
var res = if (arr.length() < 1) true else false
return (res, arr.length())
}
Run Code Online (Sandbox Code Playgroud)
我只想返回一个布尔值,表示数组是否有连续的整数,即1,2,3,以及连续整数的数量或零.
def isConsecutive(seq: Array[Int]): (Boolean, Int) = {
val count = seq.sliding(2).count(a => a(0)+1 == a(1))
(count > 0, count)
}
Run Code Online (Sandbox Code Playgroud)
并测试它:
scala> isConsecutive(Array(3,5,8,99))
res0: (Boolean, Int) = (false,0)
scala> isConsecutive(Array(3,4,5,8,99))
res1: (Boolean, Int) = (true,2)
scala> isConsecutive(Array(3,4,5,98,99))
res2: (Boolean, Int) = (true,3)
Run Code Online (Sandbox Code Playgroud)