mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加 0034.在排序数组中查找元素的第一个和最后一个位置.md Scala版本
This commit is contained in:
@ -480,7 +480,52 @@ var searchRange = function(nums, target) {
|
|||||||
return [-1, -1];
|
return [-1, -1];
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
### Scala
|
||||||
|
```scala
|
||||||
|
object Solution {
|
||||||
|
def searchRange(nums: Array[Int], target: Int): Array[Int] = {
|
||||||
|
var left = getLeftBorder(nums, target)
|
||||||
|
var right = getRightBorder(nums, target)
|
||||||
|
if (left == -2 || right == -2) return Array(-1, -1)
|
||||||
|
if (right - left > 1) return Array(left + 1, right - 1)
|
||||||
|
Array(-1, -1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 寻找左边界
|
||||||
|
def getLeftBorder(nums: Array[Int], target: Int): Int = {
|
||||||
|
var leftBorder = -2
|
||||||
|
var left = 0
|
||||||
|
var right = nums.length - 1
|
||||||
|
while (left <= right) {
|
||||||
|
var mid = left + (right - left) / 2
|
||||||
|
if (nums(mid) >= target) {
|
||||||
|
right = mid - 1
|
||||||
|
leftBorder = right
|
||||||
|
} else {
|
||||||
|
left = mid + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
leftBorder
|
||||||
|
}
|
||||||
|
|
||||||
|
// 寻找右边界
|
||||||
|
def getRightBorder(nums: Array[Int], target: Int): Int = {
|
||||||
|
var rightBorder = -2
|
||||||
|
var left = 0
|
||||||
|
var right = nums.length - 1
|
||||||
|
while (left <= right) {
|
||||||
|
var mid = left + (right - left) / 2
|
||||||
|
if (nums(mid) <= target) {
|
||||||
|
left = mid + 1
|
||||||
|
rightBorder = left
|
||||||
|
} else {
|
||||||
|
right = mid - 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rightBorder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<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