mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
Merge pull request #1478 from wzqwtt/greedy07
添加(0056.合并区间、0738.单调递增的数字) Scala版本
This commit is contained in:
@ -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形式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -246,7 +246,37 @@ function monotoneIncreasingDigits(n: number): number {
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Scala
|
||||||
|
|
||||||
|
直接转换为了整数数组:
|
||||||
|
```scala
|
||||||
|
object Solution {
|
||||||
|
import scala.collection.mutable
|
||||||
|
def monotoneIncreasingDigits(n: Int): Int = {
|
||||||
|
var digits = mutable.ArrayBuffer[Int]()
|
||||||
|
// 提取每位数字
|
||||||
|
var temp = n // 因为 参数n 是不可变量所以需要赋值给一个可变量
|
||||||
|
while (temp != 0) {
|
||||||
|
digits.append(temp % 10)
|
||||||
|
temp = temp / 10
|
||||||
|
}
|
||||||
|
// 贪心
|
||||||
|
var flag = -1
|
||||||
|
for (i <- 0 until (digits.length - 1) if digits(i) < digits(i + 1)) {
|
||||||
|
flag = i
|
||||||
|
digits(i + 1) -= 1
|
||||||
|
}
|
||||||
|
for (i <- 0 to flag) digits(i) = 9
|
||||||
|
|
||||||
|
// 拼接
|
||||||
|
var res = 0
|
||||||
|
for (i <- 0 until digits.length) {
|
||||||
|
res += digits(i) * math.pow(10, i).toInt
|
||||||
|
}
|
||||||
|
res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
Reference in New Issue
Block a user