Merge pull request #1476 from wzqwtt/greedy06

添加(0452.用最少数量的箭引爆气球、0435.无重叠区间、0763.划分字母区间) Scala版本
This commit is contained in:
程序员Carl
2022-07-25 09:09:11 +08:00
committed by GitHub
3 changed files with 69 additions and 0 deletions

View File

@ -352,7 +352,27 @@ function eraseOverlapIntervals(intervals: number[][]): number {
};
```
### Scala
```scala
object Solution {
def eraseOverlapIntervals(intervals: Array[Array[Int]]): Int = {
var result = 0
var interval = intervals.sortWith((a, b) => {
a(1) < b(1)
})
var edge = Int.MinValue
for (i <- 0 until interval.length) {
if (edge <= interval(i)(0)) {
edge = interval(i)(1)
} else {
result += 1
}
}
result
}
}
```

View File

@ -299,5 +299,30 @@ impl Solution {
}
}
```
### Scala
```scala
object Solution {
def findMinArrowShots(points: Array[Array[Int]]): Int = {
if (points.length == 0) return 0
// 排序
var point = points.sortWith((a, b) => {
a(0) < b(0)
})
var result = 1 // points不为空就至少需要一只箭
for (i <- 1 until point.length) {
if (point(i)(0) > point(i - 1)(1)) {
result += 1
} else {
point(i)(1) = math.min(point(i - 1)(1), point(i)(1))
}
}
result // 返回结果
}
}
```
-----------------------
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>

View File

@ -317,7 +317,31 @@ function partitionLabels(s: string): number[] {
};
```
### Scala
```scala
object Solution {
import scala.collection.mutable
def partitionLabels(s: String): List[Int] = {
var hash = new Array[Int](26)
for (i <- s.indices) {
hash(s(i) - 'a') = i
}
var res = mutable.ListBuffer[Int]()
var (left, right) = (0, 0)
for (i <- s.indices) {
right = math.max(hash(s(i) - 'a'), right)
if (i == right) {
res.append(right - left + 1)
left = i + 1
}
}
res.toList
}
}
```
-----------------------