Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var k = -1
- for (i <- 0 until array.length)
- if ((i < array.length - 1) && array(i) < array(i + 1))
- k = i
- scala> val xs = List(5, 4, 2, 3, 1)
- xs: List[Int] = List(5, 4, 2, 3, 1)
- scala> val tail = xs.tail
- tail: List[Int] = List(4, 2, 3, 1)
- scala> xs.zip(tail)
- res0: List[(Int, Int)] = List((5,4), (4,2), (2,3), (3,1)
- scala> res0.indexWhere { case (x, y) => x < y }
- res1: Int = 2
- val k = (array zip array.tail) lastIndexWhere { case (x, y) => x < y }
- scala> Array(1,2,2,4,5,6, 6).sliding(2).toList
- res12: List[Array[Int]] = List(Array(1, 2), Array(2, 2), Array(2, 4), Array(4, 5), Array(5, 6), Array(6, 6))
- Array(1,2,2,4,5,6, 6).sliding(2).indexWhere { case Array(x1, x2) => x1 == x2 }
- Array(1,2,2,4,5,6, 6)
- .sliding(2) //splits each in to pairs
- .zipWithIndex //attaches the current index to each pair
- .collect { case (Array(x1, x2), index) if (x1 == x2) => index } //collect filters out non-matching pairs AND transforms them to just the inde
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement