Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private def transformToRanges(in: List[Int], start: Int, end: Int, acc: List[(Int, Int)]): List[(Int, Int)] = {
- val N = end + 1
- in match {
- case Nil => acc :+ (start, end)
- case N :: Nil => acc :+ (start, N)
- case x :: Nil => acc :+ (start, end) :+ (x, x)
- case N :: xs => transformToRanges(xs, start, N, acc)
- case x :: xs => transformToRanges(xs, x, x, acc :+ (start, end))
- }
- }
- def transformToRanges(in: List[Int]): List[(Int, Int)] = {
- transformToRanges(in.tail, in.head, in.head, List())
- }
Advertisement
Add Comment
Please, Sign In to add comment