Guest User

Untitled

a guest
Apr 21st, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. private def transformToRanges(in: List[Int], start: Int, end: Int, acc: List[(Int, Int)]): List[(Int, Int)] = {
  2. val N = end + 1
  3. in match {
  4. case Nil => acc :+ (start, end)
  5. case N :: Nil => acc :+ (start, N)
  6. case x :: Nil => acc :+ (start, end) :+ (x, x)
  7. case N :: xs => transformToRanges(xs, start, N, acc)
  8. case x :: xs => transformToRanges(xs, x, x, acc :+ (start, end))
  9. }
  10. }
  11.  
  12. def transformToRanges(in: List[Int]): List[(Int, Int)] = {
  13. transformToRanges(in.tail, in.head, in.head, List())
  14. }
Advertisement
Add Comment
Please, Sign In to add comment