diff --git a/problems/0056.合并区间.md b/problems/0056.合并区间.md index a8f36fdf..627ca5b1 100644 --- a/problems/0056.合并区间.md +++ b/problems/0056.合并区间.md @@ -297,7 +297,37 @@ function merge(intervals: number[][]): number[][] { }; ``` +### Scala +```scala +object Solution { + import scala.collection.mutable + def merge(intervals: Array[Array[Int]]): Array[Array[Int]] = { + var res = mutable.ArrayBuffer[Array[Int]]() + + // 排序 + var interval = intervals.sortWith((a, b) => { + a(0) < b(0) + }) + + var left = interval(0)(0) + var right = interval(0)(1) + + for (i <- 1 until interval.length) { + if (interval(i)(0) <= right) { + left = math.min(left, interval(i)(0)) + right = math.max(right, interval(i)(1)) + } else { + res.append(Array[Int](left, right)) + left = interval(i)(0) + right = interval(i)(1) + } + } + res.append(Array[Int](left, right)) + res.toArray // 返回res的Array形式 + } +} +``` -----------------------