mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 20:40:39 +08:00
Merge pull request #1417 from xiaofei-2020/exArr07
添加(0034.在排序数组中查找元素的第一个和最后一个位置.md):增加typescript版本
This commit is contained in:
@ -480,6 +480,62 @@ var searchRange = function(nums, target) {
|
||||
return [-1, -1];
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
### TypeScript
|
||||
|
||||
```typescript
|
||||
function searchRange(nums: number[], target: number): number[] {
|
||||
const leftBoard: number = getLeftBorder(nums, target);
|
||||
const rightBoard: number = getRightBorder(nums, target);
|
||||
// target 在nums区间左侧或右侧
|
||||
if (leftBoard === (nums.length - 1) || rightBoard === 0) return [-1, -1];
|
||||
// target 不存在与nums范围内
|
||||
if (rightBoard - leftBoard <= 1) return [-1, -1];
|
||||
// target 存在于nums范围内
|
||||
return [leftBoard + 1, rightBoard - 1];
|
||||
};
|
||||
// 查找第一个大于target的元素下标
|
||||
function getRightBorder(nums: number[], target: number): number {
|
||||
let left: number = 0,
|
||||
right: number = nums.length - 1;
|
||||
// 0表示target在nums区间的左边
|
||||
let rightBoard: number = 0;
|
||||
while (left <= right) {
|
||||
let mid = Math.floor((left + right) / 2);
|
||||
if (nums[mid] <= target) {
|
||||
// 右边界一定在mid右边(不含mid)
|
||||
left = mid + 1;
|
||||
rightBoard = left;
|
||||
} else {
|
||||
// 右边界在mid左边(含mid)
|
||||
right = mid - 1;
|
||||
}
|
||||
}
|
||||
return rightBoard;
|
||||
}
|
||||
// 查找第一个小于target的元素下标
|
||||
function getLeftBorder(nums: number[], target: number): number {
|
||||
let left: number = 0,
|
||||
right: number = nums.length - 1;
|
||||
// length-1表示target在nums区间的右边
|
||||
let leftBoard: number = nums.length - 1;
|
||||
while (left <= right) {
|
||||
let mid = Math.floor((left + right) / 2);
|
||||
if (nums[mid] >= target) {
|
||||
// 左边界一定在mid左边(不含mid)
|
||||
right = mid - 1;
|
||||
leftBoard = right;
|
||||
} else {
|
||||
// 左边界在mid右边(含mid)
|
||||
left = mid + 1;
|
||||
}
|
||||
}
|
||||
return leftBoard;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Scala
|
||||
```scala
|
||||
object Solution {
|
||||
@ -527,5 +583,6 @@ object Solution {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
-----------------------
|
||||
<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