js二分法查找数值在数组中的区间
时间: 2023-12-03 18:05:48 浏览: 42
好的,这里是一个使用二分法查找数值在数组中的区间的 JavaScript 代码示例:
```javascript
function findRange(arr, target) {
const len = arr.length;
let left = 0;
let right = len - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
let i = mid;
let j = mid;
while (i >= 0 && arr[i] === target) {
i--;
}
while (j < len && arr[j] === target) {
j++;
}
return [i + 1, j - 1];
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return [-1, -1];
}
```
这个函数的参数 `arr` 是一个已经排好序的数组,`target` 是要查找的目标值。函数返回一个包含目标值在数组中出现的区间的数组,如果目标值不存在于数组中,则返回 `[-1, -1]`。
函数的实现思路是通过二分法找到目标值在数组中的位置,然后再向左右两边扩展,找到目标值在数组中的区间。